使用Rails 4视图中的link_to进行删除

时间:2015-07-01 01:20:21

标签: ruby-on-rails ruby ruby-on-rails-4 link-to

以下Rails 4 link_to是错误的,因此我无法删除并且不确定原因。在这个项目中,“书签”是“用户”下的嵌套资源,所以rake路由给了我:

DELETE /users/:user_id/bookmarks/:id(.:format)                        bookmarks#destroy

查看:

<% @bookmarks.each do |bookmark| %>
   <%= link_to "delete", user_bookmarks_path(@user, bookmark.id), method: :delete %>
<% end %>

控制器:

def destroy
    @user.bookmarks.find(params[:id]).destroy
    redirect_to root_path
end

private

def bookmark_params
    params.require(:bookmark).permit(:title, :bookmark_url)
end

def get_user
    @user = User.friendly.find(params[:user_id])
end

结果是一个看起来像http://www.example.com/users/jane-doe/bookmarks.6的链接,其中6是要删除的书签的正确ID。但是我不明白为什么它不是创建/ bookmarks / 6,我认为它可以在我的控制器中使用 destroy 工作。感觉就像有一些重要的概念,我只是不理解。任何提示都表示赞赏。

1 个答案:

答案 0 :(得分:0)

您的观点应该是这样的。您的路径名称似乎不正确:

<% @bookmarks.each do |bookmark| %>
   <%= link_to "delete", user_bookmark_path(@user, bookmark.id), method: :delete %>
<% end %>