Rails + CarrierWave: NoMethodError: неопределенный метод `image_url' для nil:NilClass

Я использую Devise и Carrierwave. Я разделил пользователей с помощью devise, а затем создал отдельный пользовательский контроллер, где сейчас находится эта страница (пользователи/поиск).

Carrierwave работал отлично и отображал изображения в моем шоу (users/1 и т. д.), однако, когда я переместил вещи на новую страницу «поиск», она сломалась.

Вот код в моем представлении.. (обратите внимание, представление работает, когда я удаляю изображение, поэтому другой код в порядке)

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

Я попытался добавить в свой user_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, и это не сработало, однако я знаю, что это не будет проблемой, поскольку я сказал, что в шоу это работает нормально.

Любые идеи ??

примечание: я проверил здесь все связанные вопросы и до сих пор не могу найти решение, которое мне поможет. Большое спасибо


person hyp0thetical    schedule 25.10.2013    source источник


Ответы (1)


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

Я думаю, что у вас есть лишний знак @. Попробуйте <%= image_tag user.image_url(:thumb).to_s %>

person 8bithero    schedule 25.10.2013
comment
Ага. Эти маленькие ошибки легко не заметить. Пожалуйста, отметьте это как ответ, если вы не возражаете. :) - person 8bithero; 26.10.2013