Ruby on Rails v5.1和Paperclip gem

时间:2017-12-09 15:27:00

标签: ruby-on-rails image-processing paperclip

我正在使用Ubuntu处理Rails应用程序。在我尝试使用paperclip gem和Imagemagick将图像添加到网站之前,一切都很好。

我已根据需要实现了代码,包括模型,控制器和可能的视图,当我单击创建/提交按钮时,表单中的所有字段都会在数据库中被接受和更新,包括图像。但在网站上它出现以下错误:

192.168.10.10

这是给出错误的行:

undefined method `image' for nil:NilClass

我已经尝试删除数据库并使用新的迁移,但是当我尝试创建新用户时,错误仍然会上升。

1 个答案:

答案 0 :(得分:0)

正如评论中所述,@current_userActiveRecord::Relation,但您需要一条记录才能访问image。由于您看起来关系中只有一个项目,因此您可以使用first方法访问第一个(也是唯一的)记录:

<%= image_tag @current_user.first.image.url(:medium) %>

但是,更好的方法是在首先设置@current_user的Controller或Helper中执行此操作。您只需将.first附加到用于设置@current_user的表达式。

有一点需要注意,通过附加.first,您将始终选择关系中的第一条记录。如果您的查询返回多条记录,则所有记录都会被忽略。如果您的查询搜索唯一的内容(例如ID),则通常不会出现此问题。