Ruby on rails 3.1 当使用filepicker rails时,我应该在rails应用程序中的何处定义我的avatar_url方法?

Ruby on rails 3.1 当使用filepicker rails时,我应该在rails应用程序中的何处定义我的avatar_url方法?,ruby-on-rails-3.1,rubygems,filepicker.io,Ruby On Rails 3.1,Rubygems,Filepicker.io,我已经安装了filepicker railsgem,可以将文件上传到filepicker.io服务器。当我尝试为不同的用户配置文件显示图像时,会出现以下错误: undefined method 'avatar_url' for nil:NilClass 在我的用户目录下的show.html.erb文件中,我有: <%= filepicker_image_tag @user.avatar_url, w: 160, h: 160, fit: 'clip' %> 你知道为什么这样不行吗

我已经安装了
filepicker rails
gem,可以将文件上传到
filepicker.io
服务器。当我尝试为不同的用户配置文件显示图像时,会出现以下错误:

undefined method 'avatar_url' for nil:NilClass
在我的用户目录下的show.html.erb文件中,我有:

<%= filepicker_image_tag @user.avatar_url, w: 160, h: 160, fit: 'clip' %>

你知道为什么这样不行吗?

基本上,你需要在数据库中设置一个名为
avatar\u url
的列。编写一个迁移,它将为您提供一个
avatar\uurl
列作为常规字符串列。由于您使用的是Rails,ActiveRecord将为您提供
avatar\uURL
方法


编辑:在您的控制器中,您可能没有正确查找您的用户,这导致在视图中对NilClass进行方法调用。

Shane,我已经在迁移中添加了
avatar\u url
。我也犯了同样的错误……啊,我很抱歉,我一开始没看错
未定义nil:NilClass的方法“avatar\u url”表示您的
@user
为空。因此,在控制器中,您要么没有正确查找
用户
,要么根本没有。实际上,您试图对一个不存在的对象调用一个方法。希望这能有所帮助。是的,在发布我的问题之前,我尝试使用以下命令定义方法“show”:
@user=user.find(params[:id])
。不幸的是,这给了我以下错误:
找不到没有ID的用户
啊,你必须发布更多的代码,可能是查看代码。无论出于何种原因,
params[:id]
似乎是空的,因此它试图在没有id的情况下进行查找。Shane,实际上这正是问题所在。我的“show”方法具有
@user=user.find(params[:id])
。但是,当我将其更改为:
@user=user.find(session[:user\u id])
时,它成功了!
def avatar_url(user)
  user.avatar_url
end