У меня есть 3 модели: Пользователь, Местоположение, Картинка. A Местоположение имеет несколько изображений, и Пользователь может предоставить несколько изображений. Я использую rabl для рендеринга результата моего запроса в json. Моя проблема в том, что я не знаю, как отображать имя пользователя из идентификатора пользователя в этом отношении?Доступ к атрибутам другой модели
Я разработал свои модели, как, что:
Изображение:
class Picture < ActiveRecord::Base
...
belongs_to :location
belongs_to :user
...
end
Пользователь:
class User < ActiveRecord::Base
...
has_many :pictures
accepts_nested_attributes_for :pictures
attr_accessible :name, :email
...
end
Расположение:
class Location < ActiveRecord::Base
...
has_many :pictures, :dependent => :destroy
accepts_nested_attributes_for :pictures
attr_accessible :name, :address
...
end
Мой Рабль файл:
object false
collection @locations
attributes :id, :name, :address
child :pictures do
attributes :id, :location_id, :url, :user_id, :created_at
end
Я попытался добавить: имя_пользователя в блоке child: pictures, но, очевидно, он терпит неудачу ... Как я могу получить к нему доступ?
EDIT: Когда я добавляю
node(:user_name) { |picture| picture.user.name }
как упомянуто Джесси, я получаю эту ошибку в логах:
2013-08-08T00:20:18.911561+00:00 app[web.1]:
2013-08-08T00:20:18.911561+00:00 app[web.1]: ActionView::Template::Error (undefined method `name' for nil:NilClass):
2013-08-08T00:20:18.911561+00:00 app[web.1]: 1: object false
2013-08-08T00:20:18.911561+00:00 app[web.1]: 2: collection @locations
2013-08-08T00:20:18.911561+00:00 app[web.1]: 3:
2013-08-08T00:20:18.911561+00:00 app[web.1]: 4: attributes :id, :name, :address, :city, :state, :zipcode, :country_name, :latitude, :longitude, :distance
2013-08-08T00:20:18.911561+00:00 app[web.1]: 5:
2013-08-08T00:20:18.911561+00:00 app[web.1]: app/views/api/v1/locations/index.json.rabl:2:in `_app_views_api_v__locations_index_json_rabl___4323955523361468965_70365132977020'
Спасибо!
Спасибо Jesse, однако, когда я добавляю эту строку, я получаю некоторые странные ошибки в журналах, см. Мой вопрос, отредактированный. Благодаря! – jbihan
Извините, это была моя ошибка, у моих фотографий не было пользователей, поэтому имя указывало на нулевой объект ... Большое спасибо за ваш ответ, он отлично работает! – jbihan