[英]Allowing users to delete their own comments in rails 3
对于每个帖子,都有后期评论。
以下是Postcomment的模型:
class Postcomment < ActiveRecord::Base
attr_accessible :comment_content
belongs_to :user
belongs_to :post
end
和Post模型
class Post < ActiveRecord::Base
attr_accessible :content, :image, :comment_content
belongs_to :user
has_many :postcomments, dependent: :destroy
end
我想允许用户删除自己的帖子。 这是我在视图中已经拥有的
_postcomment.html.erb
<% if post.postcomments.exists? %>
<% post.postcomments.each do |postcomment| %>
<%= link_to postcomment.user.name, postcomment.user %>
<span class="content2"><%= postcomment.postcomment_content %></span>
<% end %>
<% end %>
如何更改以下代码以允许用户删除评论?
<% if current_user?(postcomment.user) %>
<%= link_to "delete", postcomment.content, method: :delete,
confirm: "You sure?",
title: postcomment.content %>
<% end %>
Sessions帮助器中的current_user
方法
def current_user=(user)
@current_user = user
end
def current_user
@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end
def current_user?(user)
user == current_user
end
这是Postcomments表
create_table "postcomments", :force => true do |t|
t.text "content"
t.integer "user_id"
t.integer "post_id"
t.timestamp "created_at", :null => false
t.timestamp "updated_at", :null => false
t.text "comment_content"
end
也许...
if current_user == postcomment.user
如果current_user仍然返回用户实例......
如果你只是比较用户ID可能会更好。 这也更容易调试。
def current_user?(user)
user.id == current_user.id
end
也许是这样的:
<%= link_to("delete", postcomment.content, :method => :delete, :confirm => "You sure?", :title => postcomment.content) if postcomment.user == current_user %>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.