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 %>
答案 0 :(得分:0)
删除
@item = Item.new
来自用户控制器中的show action。
class UsersController < ApplicationController
def show
@user = current_user
@items = @user.items
end
end