我有模特用户。控制器方法之一是
def view_messages
@user = User.find(params[:id])
@message=Message.new
@messages=@user.messages.reverse
end
我也有模型消息,这个模型的参数之一是user_from:integer
view_messages视图有
render :partial => 'messages/message', :collection => @messages
和_message.haml有
= content_tag_for(:li,message) do
%p
From:
=link_to User.find(message.user_from).name,User.find(message.user_from)
它写了一个错误
找不到没有ID的用户
但如果我想像
那样打印它 = content_tag_for(:li,message) do
%p
From:
=message.user_from
它打印它(为exaple它打印2),所以为什么它不能找到id为2的用户如果我有这个用户?我做错了什么? 提前致谢
答案 0 :(得分:2)
一般问题:
user_from
应为user_from_id
,按Rails惯例
那么你应该有一个belongs_to关系:
class Message
belongs_to :user_from
end
将自动从数据库中拉出用户
然后您可以将用户称为消息
的属性link_to @message.user_from.name, @message.user_from
检查消息记录的所有。其中一个可能没有user_from
,并导致错误。