我的應用程序有一個評論表和一個重新發布表。用戶可以在查看評論時點擊圖標(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]),它無法找到它並引發相同的錯誤。這是一個惡性循環!我想添加這個問題,因爲它可能有助於說明我想完成什麼。
感謝您的回覆!將@repost添加到link_to時,仍然會出現相同的錯誤。我會在問題中更新代碼。謝謝 – winston
啊,我明白你的意思了。好吧,那該怎麼辦?您的控制器中沒有設置「@ repost」。如果你使用'@ post' - 我們確定有0條評論。 – Ven
不知道如何設置repost實例變量。@ repost = Repost.find(params [:repost])只是返回錯誤「無法找到沒有ID的重新發布」。同使用:id作爲參數。我如何告訴控制器使用轉發? – winston