1

作成中のトランザクション オブジェクトに関していくつか質問があります。

トランザクションはローンに属し、ローンは多くのトランザクションを持っています。

したがって、ネストされたルートをセットアップします。

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

そうすれば、新しい@transactionものにはすでにloan_idが入力されています

于 2011-05-18T20:43:33.823 に答える
0

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 に答える