我有兩個型號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