【问题标题】:Rails + CarrierWave: NoMethodError: undefined method `image_url' for nil:NilClassRails + CarrierWave:NoMethodError:nil:NilClass 的未定义方法`image_url'
【发布时间】:2013-10-25 20:28:11
【问题描述】:

我正在使用 Devise 和 Carrierwave。我用设计对用户进行了性别化,然后创建了一个单独的用户控制器,该页面现在位于(用户/搜索)

Carrierwave 运行良好,并在我的节目(用户/1 等)中显示图像,但是当我将内容移至新的“搜索”页面时,它就坏了。

这是我视图中的代码..(请注意,当我删除图像时视图有效,所以其他代码没问题)

<% @males.each do |user| %>
  <%= image_tag @user.image_url(:thumb).to_s %>
  <%= user.firstname %>
<% end %>

我已经尝试在我的 users_controller 中添加:

def search
  @users = User.all
end

您可能可以通过我认为的代码来判断我正在按性别过滤用户(我定义了@males 和@females)您可以在下面的模型中看到这一点。

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' }

我尝试将 :image_url 添加到 attr_accessible 和 mount_uploader 中,但没有成功,但是我知道这不是问题,因为我说它在节目中可以正常工作。

有什么想法吗??

注意:我已经检查了此处的所有相关问题,但仍然找不到对我有帮助的解决方案。非常感谢

【问题讨论】:

    标签: ruby-on-rails carrierwave


    【解决方案1】:
    <% @males.each do |user| %>
      <%= image_tag @user.image_url(:thumb).to_s %>
      <%= user.firstname %>
    <% end %>
    

    我认为你有一个额外的@符号。试试&lt;%= image_tag user.image_url(:thumb).to_s %&gt;

    【讨论】:

    • 是的。很容易忽略这些小错误。如果您不介意,请将此标记为已回答。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 2020-08-14
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    • 2013-02-05
    相关资源
    最近更新 更多