Rails + CarrierWave:NoMethodError:nil:NilClass的未定义方法“ image_url” [英] Rails + CarrierWave: NoMethodError: undefined method `image_url' for nil:NilClass

查看:52
本文介绍了Rails + CarrierWave:NoMethodError:nil:NilClass的未定义方法“ image_url”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆