0

我有 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'

但它不起作用。

4

2 回答 2

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'
于 2013-08-13T12:29:01.390 回答
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
于 2013-08-13T12:26:52.227 回答