我有BudgetLine模型。该模型有budget_item_id列。
第二个模型是BudgetItem。它有一个id和一列:full_name。
现在,我想调用:budget_line.item_name并获取与BudgetItem中的full_name相对应的名称。
我尝试过(在BudgetLine中):
has_one :item_name, :class_name => 'BudgetItem', :foreign_key => 'budget_item_id'
但它没有用。
答案 0 :(得分:0)
由于您的外键位于BudgetLine
模型中,因此您应该有belongs_to
个关联:
belongs_to :item_name, class_name: 'BudgetItem', foreign_key: 'budget_item_id'
如果你想让方法只返回item_name,我建议重命名你的关联并添加单独的方法:
belongs_to :budget_item
def item_name
budget_item.try(:full_name)
end
答案 1 :(得分:0)
而不是在BudgetLine中写作
has_one :item_name, :class_name => 'BudgetItem', :foreign_key => 'budget_item_id'
你应该写
belongs_to :item_name, :class_name => 'BudgetItem', :foreign_key => 'budget_item_id'