【发布时间】:2017-12-21 18:42:31
【问题描述】:
Link to image of what I'm talking about
我的问题是在我的列表底部呈现了一个没有项目 ID 的额外模板。单击时,图标会删除它们旁边的项目。即使没有与之相关的项目,底部图标也会显示。
这是我的节目 html.erb
<div class="row">
<div class="col-md-8">
<div class="media">
<br />
<div class="media-body">
<h3><%= @user.email %></h3>
<br />
<%= render partial: 'items/form', locals: {user: @user} %>
<div class="media">
<div class="media-body">
<h4 class="media-heading">
<ul>
<%= render @items %>
</ul>
</h4>
</div>
</div>
</div>
</div>
</div>
这是我的 _item 模板
<li><%= item.name %><%= link_to "", [current_user, item], remote: true, method: :delete, class: 'glyphicon glyphicon-ok' %></li>
这是我的物品控制器
class ItemsController < ApplicationController
def create
@item = Item.new(item_params)
@item.user = current_user
if @item.save
flash[:notice] = "Item was saved."
redirect_to user_path(current_user.id)
else
flash.now[:alert] = "There was an error saving the item. Try again."
redirect_to user_path(current_user.id)
end
end
def destroy
@item = Item.find(params[:id])
if @item.destroy
flash[:notice] = "Item deleted"
redirect_to user_path(current_user.id)
else
flash.now[:alert] = "Error deleting the item."
redirect_to user_path(current_user.id)
end
end
private
def item_params
params.require(:item).permit(:name)
end
结束
这是我的用户控制器
class UsersController < ApplicationController
def show
@user = current_user
@item = Item.new
@items = @user.items
end
end
项目属于用户,并在用户下嵌套路由。将鼠标悬停在最后一个复选标记(我想去掉的那个)上时显示链接 .../users/6/items,而项目旁边的其他复选标记显示 .../users/6/items/40
这是我的 _form.html.erb 项目:
<%= form_for [user, user.items.new] do |f| %>
<%= f.text_field :name, class: 'form-control', placeholder: "Enter your to-do item", value: nil, required: true %>
<div class="form-group">
<%= f.submit "Save", class: 'btn btn-success' %>
</div>
<% end %>
【问题讨论】:
标签: ruby-on-rails templates render erb nested-routes