與下面的代碼相關聯的用戶的化身......錯誤顯示用戶名和誰與評論
<%= image_tag comment.user.avatar.url(:medium), class: "circle-extrasmall" %>
<%= comment.user.name %>
我的錯誤...
undefined method `avatar' for nil:NilClass
我想我已經爲用戶和評論創建了正確的關聯。
下面是在控制器中...
class CommentsController < ApplicationController
def create
@challenge = Challenge.find(params[:challenge_id])
@comment = @challenge.comments.create(params[:comment])
@comment.user_id = current_user
flash[:notice] = "Comment has been created!"
redirect_to @challenge
end
end
和這裏的是什麼模型?
class Comment < ActiveRecord::Base
attr_accessible :challenge_id, :user_id, :text
validates :user_id, presence: true
belongs_to :challenge
belongs_to :user
end
但是,我不知道是什麼原因造成的錯誤。我是Ruby-on-Rails的新手。預先感謝您的建議。
我仍然得到同樣的錯誤... 未定義的方法'阿凡達」的製作方法無:NilClass –
是的,這是因爲你的數據庫中有一些沒有user_id的記錄。因此刪除這些記錄或者您可以使用<%= image_tag comment.user.avatar.url(:medium),class:「circle-extrasmall」除非comment.user.blank?%> <%= comment.user.name除非comment.user.blank? %> –
好吧,我沒有再收到零錯誤。但是,它仍然沒有顯示用戶名或頭像。我不認爲在創建評論時user_id被添加到評論中。 驗證:user_id,presence:true在模型中,它不允許我發表評論,這意味着它不能識別我猜測的current_user_id。有任何想法嗎? –