Rails中表之间的关系(与同一个表的双重关系)

时间:2013-12-07 13:57:39

标签: ruby-on-rails ruby associations erb

我是rails的新手,我想在这个问题上得到你的帮助。

我有两个表帐户和交易。每笔交易都应有账户和账户。因此,当我添加交易时,我将从账户表中选择两次以获得FROM和TO账户(在新交易表中列出选择)。

我正在使用scaffold生成代码,我只能向表中添加一个关系。你是如何两次与帐户表生成关系的

这是代码:

$rails g scaffold account a_name:string a_type:string a_amount:float
$rails g scaffold Transaction account_id:integer account_id:integer t_amount:float      t_date:date t_desc:text

1 个答案:

答案 0 :(得分:2)

您需要在交易表account_idfrom_account_id中添加两个to_account_id列,否则您将如何区分这两个列?

rails g scaffold Transaction to_account_id:integer from_account_id:integer

然后,在您的交易模型中,您需要正确定义关系:

belongs_to :from_account, class_name: 'Account'
belongs_to :to_account, class_name: 'Account'

作为旁注,你真的应该避免使用脚手架,因为它为你做了太多的决定和概括。您可以使用单个发电机。

rails g model Transaction from_account_id:integer to_account_id:integer
rails g controller transactions