2013-05-31 54 views
0

我的應用程序有一個評論表和一個重新發布表。用戶可以在查看評論時點擊圖標(show.html.erb,評論控制器),該評論將「轉貼」(aka轉發)給評論者。這段代碼可以看出在前面的問題我張貼在這裏:未定義的方法`評論'爲零:NilClass活動中的NoMethodError#index

ActiveRecord::RecordNotFound Couldn't find Comment without an ID

的行動的link_to成功地增加了轉播數據庫註釋的USER_ID和COMMENT_ID。但是,現在我試圖在Repost表中顯示匹配的comment_id中內容的Comments.content值。

我的看法是不接受含有@ repost.comment.content一個的link_to

<%= link_to @repost.comments.content, @repost %> 

我得到以下錯誤:

NoMethodError活動#指數 未定義的方法`評論的零: NilClass

我的轉貼模型與評論具有「belongs_to」關係。評論模型與repost具有「has_many」關係。

我假設我需要創建的活動控制器@repost數組,但我不知道該怎麼補充:

class ActivitiesController < ApplicationController 
    before_filter :authenticate_user! 
    def index 
    @activities = PublicActivity::Activity.order("created_at DESC").where(owner_type: "User", owner_id: current_user.followed_users.map {|u| u.id}).page(params[:page]).per_page(15) 
    @post = current_user.posts.build 

    respond_to do |format| 
     format.html # index.html.erb 
     format.json 
     format.js 
    end 
    end 
end 

任何幫助深表感謝。

謝謝! -b

編輯:

嘗試添加該給活動控制器:

@repost = PublicActivity::Activity.where(trackable_type: "Comment", trackable_id: @comment).all 

不過,我又回到了原點:@comment不引用任何東西。如果我嘗試將@comment實例變量設置爲Comment.find(params [:id]),它無法找到它並引發相同的錯誤。這是一個惡性循環!我想添加這個問題,因爲它可能有助於說明我想完成什麼。

回答

0

這是

<%= link_to @repost.comments.content, @repost %> 

你就錯過了@

+0

感謝您的回覆!將@repost添加到link_to時,仍然會出現相同的錯誤。我會在問題中更新代碼。謝謝 – winston

+0

啊,我明白你的意思了。好吧,那該怎麼辦?您的控制器中沒有設置「@ repost」。如果你使用'@ post' - 我們確定有0條評論。 – Ven

+0

不知道如何設置repost實例變量。@ repost = Repost.find(params [:repost])只是返回錯誤「無法找到沒有ID的重新發布」。同使用:id作爲參數。我如何告訴控制器使用轉發? – winston

相關問題