2016-06-20 12 views
1

Railsで関連モデルを作成しようとしています。私のモデルは財務であり、財務に属する多くの文書と文書を持っています。関連するモデルを作成する作業のコードでは、私の見解でレール付き関連モデルの作成

def create 
    @financial = Financial.find(2) 
    @document = @financial.documents.create(document_params) 
    ... 
end 

私はこのようになりますフォームを選択することができ、右金融

<%= form_for Document.new do |f| %> 
<%= f.collection_select :financial_id, Financial.all, :id, :description %> 
<%= f.submit %> 

私はに転送され、右のパラメータを参照しています

:私はフォーム

"financial_id"=>"3" 

は、だから私は、私はちょうどに最初のコードを変更する必要があります考え出し提出したときにログイン

def create 
    @financial = Financial.find(params[:financial_id]) 
    @document = @financial.documents.create(document_params) 
    ... 
end 

しかし、「ID = '」の財務情報が見つかりませんでした。私は以下を含む他のものを試しました:

@financial = Financial.find_by(id: params[:financial_id]) 

大成功なし。誰でも私に適切な構文を教えてください。ありがとう。投稿されたparamsdocumentハッシュの内側に実際にある、ので

+0

document_paramsのコードを置くことができますか? –

+0

ええ、おそらく[強力なパラメータ](http://edgeapi.rubyonrails.org/classes/ActionController/StrongParameters.html)に問題がありますか?ドキュメントのfinancial_idを許可しましたか? – Huw

答えて

1

は=

'ID' と金融が見つかりませんでした。だからparams[:financial_id]は動作しません。代わりに使用する必要がありますparams[:document][:financial_id]

def create 
    @financial = Financial.find(params[:dcument][:financial_id]) 
    @document = @financial.documents.create(document_params) 
    ... 
end 
関連する問題