我有几个与我正在创建的事务对象有关的问题。
交易belongs_to贷款和贷款has_many交易。
因此,我设置了一个嵌套路由:
resources :loans do
resources :transactions
end
我的问题是:如何将贷款价值传递到交易的"loan_id"字段中?这是最好在控制器中完成还是作为表单中的hidden_field完成?嵌套路由是否创建了获取此变量的简单方法?
我以为这会自动完成,但是当我按原样保存时,该字段为空。
任何帮助将不胜感激!
如果您调用特定事务,则new
事务的路由将是
loans/:loan_id/transactions/new
您可以像这样使用模型关联:在create
操作中:
@transaction = Loan.find(params[:loan_id]).transactions.build
这样,您的新@transaction
将已经填充了loan_id
考虑向控制器添加一个before_filter
,并让它调用私有方法来获取所有操作中的:id
。将其放在transactions
控制器的顶部:
before_filter :load_loan
然后在所有操作之后,添加:
private
def load_loan
@loan.find(params[:loan_id])
end
在new
操作中像这样使用它:
@transaction = @loan.transactions.build