Это довольно неприятный вопрос newb, но я не могу заставить итерацию объектов работать вообще в моем проекте rails. У меня две модели: «Фото» и «LandUse», у которых есть ассоциация has_and_belongs_to_many. В консоли все работает так, как ожидалось.Rails итерация
Однако, в действии фотошоу я не могу понять, какой код создаст список связанных с фотографией земель. Мой код выглядит так:
<% for use in @photo.land_uses %>
<%= use.name %>
<% end %>
Это не производит никакого вывода. Я также пробовал:
<% @photo.land_uses.each do |use| %>
<%= use.name %>
<% end %>
... и это тоже не работает.
В консоли, если я попробовать что-то вроде этого:
photo = Photo.first
photo.land_uses
получить список всех земель использует, что фотография принадлежит, никаких сюрпризов.
Как я могу перебирать этот список использований и печатать имя каждого использования?
Я новичок в Ruby, но если бы я пытался сделать то же самое в РНР будет простой цикл Еогеасп:
foreach($photo->land_uses as $use) {
echo $use->name;
}
Так что я здесь отсутствует?
Обновление: вот модели в соответствии с просьбой:
--Photo Model--
class Photo < ActiveRecord::Base
belongs_to :user
belongs_to :transect
belongs_to :focus
has_and_belongs_to_many :land_uses
validates :caption, :presence => true
validates :place, :presence => true
validates :city, :presence => true
validates :country, :presence => true
has_attached_file :file,
:processors => [:watermark],
:styles => { :standard => "631x631>",
:marked => { :geometry => "631x631>", :watermark_path => "#{Rails.root}/public/images/watermark.png", :position => 'Center' },
:thumbnail => "174x130#"
},
:storage => :s3,
:s3_credentials => "#{Rails.root}/config/s3.yml",
:path => ":user_id/:year/:month/:id/:style.:extension"
geocoded_by :location, :latitude => :lat, :longitude => :lng
after_validation :fetch_coordinates
def location
[place,city,state,country].delete_if{|val| val==''||nil}.join(', ')
end
end
- LANDUSE Модель -
class LandUse < ActiveRecord::Base
has_and_belongs_to_many :photos
validates_uniqueness_of :name
end
RE : Сообщения об ошибках ... Я не получаю сообщение об ошибке с или для каждого подхода, я просто получаю пустое место, где должен быть список использования земли.
Спасибо!
отправьте свои модели – s84
у вас есть ошибки? – s84
Что говорит '@ photo.land_uses.map (&: name)'? – Reactormonk