2016-08-15 12 views
0

私はTrlというモデルとProjectというモデルを持っています。団体は以下のとおりです。Rails 4 - Strong Parameters - 関連する属性

プロジェクト

私のプロジェクトの形で
belongs_to :Trl 

TRL

has_many :projects 

が、私はTRLを選択するようユーザーに依頼し、プロジェクトのフォームがあります

<%= render partial: 'trls/project', locals: { f: f } %> 

部分的なもの:

<%= f.input :trl, label: false do %> 
    <%= f.select :trl, Trl.all.map { |t| [t.title, t.id] }, 
          include_blank: false, 
          prompt: 'Select one' %> 

私はこのすべてを保存し、それを使用しようとすると、私が言うエラーが出る:

undefined method `title' for nil:NilClass 

私はtrl_attributeの含める必要があるかどうかについてはよく分からない:私のプロジェクトで[をタイトル]コントローラ強いですparams。フォームを記入したユーザーはタイトルを作成できません。すでに作成されているリストから1つを選択するだけで済みます。

このコンテキストを強力なパラメータに含める必要がありますか?

答えて

0

はい、それを白いパラメータのリストに含める必要があります。ここでは、あなたのエラーはNilオブジェクトに関するものですが、まずそれを解決する必要があります。 strong parametersリストにそれを含めるその後

<%= f.select :trl, Trl.all.map { |t| [t.try(:title), t.try(:id)] }, include_blank: false, prompt: 'Select one' %> 

はこれを試してみてください。

+0

これを行うには、プロジェクトコントローラに他のものを追加する必要がありますか?これをコンソールに設定すると動作します。私は彼の形からそれをすることはできません。 – Mel

+0

レールコンソールのTrlからレコードを取得していますか? –

+0

はい - コンソールから追加して検査できますが、htmlビューでエラーが発生します – Mel

関連する問題