我的Rails 3应用程序中有一个嵌套资源模型。它是带有帖子和评论的标准博客应用程序。我刚开始使用jQuery等来使我的应用程序更具动态性,我现在正在努力使用link_to帮助程序删除嵌套模型中的注释。
评论模型
class Comment < ActiveRecord::Base
belongs_to :post
end
发布模型
class Post < ActiveRecord::Base
has_many :comments, :dependent => :destroy
accepts_nested_attributes_for :comments
end
在我的帖子/ show.html.erb 中,我有以下bloc,它显示所有带有link_to帮助程序的注释以删除注释。这适用于HTML,但是当我添加:remote =&gt;是的,它删除了父帖而不是评论!如何设置它以便仅删除注释?
<% @post.comments.each do |comment| %>
<%= comment.body %>
<%= link_to "Approve", [@post,comment], :method =>:put, :remote=>true %>
<%= link_to "Delete", [@post,comment], :method =>:delete, :remote=>true %>
<%end%>
谢谢,
答案 0 :(得分:0)
我认为您希望在评论类的删除操作中使用此功能:
def delete
...
respond_to do |format|
format.html
format.js
end
end
然后,在您的views / comments目录中,您应该有一个名为delete.js.erb的文件来执行您的jQuery DOM操作(找到您单击删除链接的特定注释并将其删除。
然后,您的Posts / show.html.erb文件中的delete方法的link_to,您可以指定控制器和操作,并传入您可能需要的任何数据(父帖子,以便您可以在其中引用它)你的jQuery)。您可以参考本网站的第一个示例部分,了解为link_to帮助程序here指定特定控制器和操作的语法。
答案 1 :(得分:0)
只需检查控制器中的相应操作即可。 如果有渲染或redirect_to只是删除它
它对我有用(Rails 4)