Rails 3 嵌套资源变量



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

交易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

相关内容

  • 没有找到相关文章

最新更新