Вы можете решить эту проблему:
Добавление itemimage_count в вашу миграцию
def self.up
add_column :item, :itemimage_count, :integer, :default => 0
Item.reset_column_information
Item.all.each do |item|
item.update_attribute :itemimage_count, item.itemimages.length
end
end
def self.down
remove_column :item, :itemimage_count
end
end
Это будет ассоциировать несколько ItemImages с каждым Item. Вы можете получить доступ к этому счетчику в своих видах, контроллерах и моделях.
Если вы хотите поиграть с этим, вы можете просто установить условие прицела в вашей модели.
item.rb
scope :list, :conditions => ["itemimages_count >= 0"]
Item_controller
@itemimages = Item.list
Я бы лично сделал частичное в ваших представлениях с 1 набором операторов if else, когда вы хотите отобразить изображения, просто вызовите частичное.
if Item.itemimages_count == 0
#show this image
end
#code that displays an Item's image
#show the image in itemimages
Надеюсь, это кому-нибудь поможет.