我有两个型号MSellingStaff
和MPosition
Rails的渴望装载协会
#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
我有一个属性m_position
pos_short_name
。当我尝试
@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
在导轨控制台I可以看到,对于
@sellers = MSellingStaff.includes(:m_position).all
生成的SQL是
MSellingStaff负荷(0.6ms )SELECT “m_selling_staffs”。* FROM “m_selling_staffs” MPosition负荷(0.2ms的)选择 “m_position”。* FROM “m_position” WHERE“m_positi on“。”pos_id“IN('')
我在做什么错?下面
@sellers.first.m_position.pos_short_name
在此先感谢
“未定义的方法'pos_short_name”的零:NilClass”表示@ sellers.first.m_position是零 - 换句话说,你有没有相关的MPosition –
@DavidAldridge多数民众赞成在MSellingStaff的情况下,奇怪的事情,在''的m_selling_staffs' emp_pos_id'列中的所有值都存在于''的m_position' –
pos_id'列,你应该有''在表m_selling_staffs'和pos_id'它应该是指'm_position'根据你的关系 – Sravan