1

我有几个与我正在创建的 Transaction 对象有关的问题。

Transaction belongs_to Loan 和 Loan has_many Transactions。

因此,我设置了一个嵌套路由:

resources :loans do
  resources :transactions
end

我的问题是:如何将贷款价值传递到交易的“loan_id”字段?这最好在控制器中完成还是作为表单中的 hidden_​​field 完成?嵌套路由是否创建了一种获取此变量的简单方法?

我以为这会自动完成,但是当我按原样保存时该字段为空。

任何帮助将不胜感激!

4

2 回答 2

2

如果您调用特定事务,则事务的路由new将是

loans/:loan_id/transactions/new

您可以像这样使用模型关联:在您的create操作中:

@transaction = Loan.find(params[:loan_id]).transactions.build

这样你的 new@transaction就已经被loan_id 填充了

于 2011-05-18T20:43:33.823 回答
0

考虑将 a 添加before_filter到您的控制器并让它调用一个私有方法来获取:id所有操作。将它放在transactions控制器的顶部:

before_filter :load_loan

然后在所有操作之后,添加:

private
def load_loan
  @loan.find(params[:loan_id])
end

在您的操作中像这样使用它new

@transaction = @loan.transactions.build
于 2011-10-20T11:22:06.167 回答