У меня есть две модели MSellingStaff
и MPosition
Рельсы рвутся погрузочные ассоциации
#m_selling_staff.rb
class MSellingStaff < ActiveRecord::Base
belongs_to :m_position
end
#m_position.rb
class MPosition < ActiveRecord::Base
self.primary_key ='pos_id'
has_many :m_selling_staffs, :foreign_key => 'emp_pos_id'
end
У меня есть атрибут pos_short_name
в m_position
. Когда я пытаюсь
@sellers = MSellingStaff.includes(:m_position).all
@sellers.first.pos_short_name
Я получаю
неопределенный метод `pos_short_name» для #MSellingStaff: 0x0000000651a5d0
и когда я пытаюсь
@sellers.first.m_position.pos_short_name
я получаю
неопределенный метод `pos_short_name» для ноль: NilClass
В консоли рельсы я могу видеть, что SQL генерируется для
@sellers = MSellingStaff.includes(:m_position).all
является
MSellingStaff нагрузки (0.6ms) SELECT «m_selling_staffs». * FROM «m_selling_staffs» Загрузка MPosition (0.2ms) SELECT «m_position». * FROM «m_position» ГДЕ «m_positi» на "." pos_id "IN ('')
Что я делаю неправильно? спасибо заранее
«неопределенный метод' pos_short_name»для ноль: NilClass» указывает на то, что @ sellers.first.m_position равна нулю - другими словами, у вас есть экземпляры MSellingStaff, которые не имеют связанный с ним MPosition –
@DavidAldridge то будет странная вещь, все значения в столбце 'em_p_pos_id'' m_selling_staffs' находятся в столбце 'pos_id'' m_position' –
, вы должны иметь 'pos_id' в таблице' m_selling_staffs', и он должен ссылаться на 'm_position' в соответствии с вашим отношением – Sravan