Весь день я борюсь с получением данных от ассоциаций. У меня есть эти 3 модели:Rails 3 - как получить данные через ассоциации
Пользователь
has_many :user_cars
автомобилей
has_one :user_cars
UserCar
belongs_to :car
belongs_to :user
Таблица, user_cars имеет столбцы
user_id
car_id
Я имею в виду заявление всех автомобилей и каждый автомобиль, который я хотел бы напечатать, если в данный момент вошедшего пользователя есть автомобиль.
Я пытаюсь сделать это как:
<% @user_cars.car.name%>
Но это дает мне ошибку
undefined method `car' for #<ActiveRecord::Relation:0x0000012edc14a8>
Я хотел бы спросить у вас - у меня ошибка уже в ассоциациях или в целях ?
EDIT:
<% @cars.each_with_index do |car, i|%> #loop through all cars in the system
#in the every loop I would like to print, if the user has this one
<% @user_cars.each do |c| %> #through the loop I can get it, but I think is not efficient
<li><%= c.car.name %></li>
<% end %>
<% end %>
ZelluX правильный. @user_cars - это коллекция автомобилей, поэтому вам нужно перебирать коллекцию с помощью метода 'each'. –
Спасибо, ребята, это частично решает мою проблему - частично потому, что из 2 циклов. Я обновил свое оригинальное сообщение - посмотри на это, пожалуйста. Что ты мне помог - это работает. Но теперь у меня есть ситуация, когда у меня есть цикл в цикле - и я хотел бы спросить вас, если это более эффективный способ ... – user984621
@ user984621 Не могли бы вы опубликовать, как инициализируется user_cars? – ZelluX