2013-04-16 84 views
0

對於每篇文章,都有後期評論。允許用戶在導軌中刪除他們自己的評論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 

我想允許用戶刪除自己的postcomments。這是我已經在視圖

_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 %> 

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 
+0

有什麼問題你的代碼?它會給出錯誤嗎?它不會讓用戶刪除他們的評論嗎? – Catfish

+0

它不會給出錯誤...但「刪除」文本不會顯示在評論旁邊 – user2159586

+0

您是否在使用設計? – Catfish

回答

1

也許......

如果CURRENT_USER == postcomment.user

如果current_user無論如何都返回一個用戶實例...

1

如果您只比較用戶標識可能會更好。這也更容易調試。

def current_user?(user) 
    user.id == current_user.id 
end 
0

也許是這樣的:

<%= link_to("delete", postcomment.content, :method => :delete, :confirm => "You sure?", :title => postcomment.content) if postcomment.user == current_user %> 
+0

我可以得到「刪除」來顯示,但後評留下來。任何想法應該設置什麼'postcomment.content',以便評論實際上被刪除? – user2159586

+0

@ user2159586換句話說,邏輯沒有問題,只是刪除鏈接本身。你有jQuery的ujs啓用?刪除請求使用JavaScript處理。 – Noz

+0

postcomments本身顯示在jquery彈出窗口中,因此啓用了jquery。我覺得刪除'postcomment.content'不起作用。我使用postcomments表更新了原始帖子。刪除代碼行看起來是否適合您? – user2159586

相關問題