Rails + CarrierWave:NoMethodError:nil:NilClass的未定义方法“ image_url” [英] Rails + CarrierWave: NoMethodError: undefined method `image_url' for nil:NilClass
问题描述
我正在使用Devise和Carrierwave。我使用devise将用户性别化,然后创建了一个单独的用户控制器,该页面现在位于该页面(用户/搜索)
I'm using Devise and Carrierwave. I genderated users with devise then created a separate user controller where this page is now (users/search)
Carrierwave可以正常运行并在我的节目中显示图像(users / 1等),但是当我将内容移到新的搜索页面时,它就坏了。
Carrierwave was working perfectly and displaying images in my show (users/1 etc) however when I have moved things over to the new 'search' page, its broken.
这是我视图中的代码。(注意,当我删除了图像,所以其他代码也没问题)
Here's the code in my view.. (note, the view works when I remove the image, so the other code is fine)
<% @males.each do |user| %>
<%= image_tag @user.image_url(:thumb).to_s %>
<%= user.firstname %>
<% end %>
我尝试添加users_controller:
I've tried adding in my users_controller:
def search
@users = User.all
end
您也许可以通过我视图中的代码看出来,我正在按性别过滤用户(它们已定义为@males和@females),您可以在下面的模型中看到它。
As you might be able to tell by the code in my view I am filtering users by gender (which ive defined @males and @females) You can see that in my model below.
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessible :email, :password, :password_confirmation, :remember_me, :username, :firstname, :lastname, :gender, :image, :remote_image_url, :image_cache, :remove_image
mount_uploader :image, ImageUploader
scope :male, -> { where gender: 'male' }
scope :female, -> { where gender: 'female' }
我尝试在attr_accessible和mount_uploader中同时添加:image_url和它没有用,但是我知道那不是问题,因为我说它在演出中很好用。
I've tried adding :image_url to both attr_accessible and mount_uploader and it didn't work, however I know that would not be the problem as I said it works fine in the show.
任何想法??
注意:我已经在这里检查了所有相关问题,但我仍然可以找不到对我有帮助的解决方案。非常感谢
note: I've checked all related questions on here and I still can't find a solution which helps me. Thanks very much
推荐答案
<% @males.each do |user| %>
<%= image_tag @user.image_url(:thumb).to_s %>
<%= user.firstname %>
<% end %>
我认为您还有一个@符号。尝试<%= image_tag user.image_url(:thumb).to_s%>
I think you have an extra @ sign. Try <%= image_tag user.image_url(:thumb).to_s %>
这篇关于Rails + CarrierWave:NoMethodError:nil:NilClass的未定义方法“ image_url”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!