我正在使用Ubuntu处理Rails应用程序。在我尝试使用paperclip gem和Imagemagick将图像添加到网站之前,一切都很好。
我已根据需要实现了代码,包括模型,控制器和可能的视图,当我单击创建/提交按钮时,表单中的所有字段都会在数据库中被接受和更新,包括图像。但在网站上它出现以下错误:
192.168.10.10
这是给出错误的行:
undefined method `image' for nil:NilClass
我已经尝试删除数据库并使用新的迁移,但是当我尝试创建新用户时,错误仍然会上升。
答案 0 :(得分:0)
正如评论中所述,@current_user
是ActiveRecord::Relation
,但您需要一条记录才能访问image
。由于您看起来关系中只有一个项目,因此您可以使用first
方法访问第一个(也是唯一的)记录:
<%= image_tag @current_user.first.image.url(:medium) %>
但是,更好的方法是在首先设置@current_user
的Controller或Helper中执行此操作。您只需将.first
附加到用于设置@current_user
的表达式。
有一点需要注意,通过附加.first
,您将始终选择关系中的第一条记录。如果您的查询返回多条记录,则所有记录都会被忽略。如果您的查询搜索唯一的内容(例如ID),则通常不会出现此问题。