2017-12-06 4 views
2

コントローラからパーシャルへの変数値の受け渡しが滞っています。 SkillSetsControllerコントローラからパーシャルビューレールへの変数の受け渡し

def skillsetdata 
    @skillSetData = SkillSet.all 
end 

skill_set/skillsetdata.html.erbディスプレイ上に以下のコードのすべてのデータ:私は、コントローラからの@skillSetData上のスキルセットデータベースから全てのデータを有しています。

<% @skillSetData.each do |single_skill| %> 

    <option value="<%= single_skill.skillname %>"><%=single_skill.skillname %></option> 

<% end %> 

しかし、私はskillsetdata.html.erbが部分的すなわちである場合、変数を渡すことはできませんよ:_skillsetdata.html.erb。私が書いた_skillsetdataためのコードは次のとおりです。

<% skills_set_data.each do |single_skill| %> 
    <option value="<%= single_skill.skillname %>"> 
     <%=single_skill.skillname %> 
    </option> 
<% end %> 

私はそれが様々な他のページにレンダリングする必要があるドロップダウンリストを持っているので、それは部分的にしたいです。私が使用したいページの1つは、static_pages/home.html.erbです。これは、異なるコントローラ、つまりstaticPagesからです。

<%= render partial: 'skill_sets/skillsetdata', locals: { skills_set_data:@skillSetData } %> 

しかし、私はとエラーを取得しています:私は助け後にしようとしているコードがあるnilのための 未定義のメソッド `各」:NilClass をskill_sets/_skillsetdata.html.erb で家をロードしようとしたとき.html.erb。私は部分的に異なるページ間でデータを渡すことができません。

例コードのヘルプが役立ちます。あなたが使用できるパーシャルにインスタンス変数を渡すため

+0

'ActionController :: UnknownFormat'は別のエラーです。あなたのコントローラのコードは何ですか? –

+0

エラーは、実際には定義されていないメソッド 'each'がnilであることを認識しました。home.html.erbを読み込もうとしているときにskill_sets/_skillsetdata.html.erbのNilClass – adhital

+0

エラーが発生する理由は1つだけです。使用しているインスタンス変数はnilです。それ以外の場合、 '' Missing partial'''があります。 ''未定義ローカル変数またはメソッド ''の部分集合の名前が '' undefined method ' nilのための:NilClass'。試してみて、 'locals:{skills_set_data:nil}'を使って何が起こるか見てみましょう。 –

答えて

0

locals

# view from 
<%= render partial: 'skillsetdata', locals: { skills_set_data: @skillSetData } %> 

ローカルにあなたは今ローカル一つであるインスタンス変数の値が、受信中:

# partial 
<% skills_set_data.each do |single_skill| %> 
    <option value="<%= single_skill.skillname %>"> 
    <%=single_skill.skillname %> 
    </option> 
<% end %> 
+0

私は、異なるコントローラie:staticPages#homeのビューstatic_pages/home.html.erbからパーシャルをレンダリングしようとしています。ですから、私が<%= render 'partial:' skill_sets/skillsetdata 'を持っている場合、home.html.erbにlocals:{skills_set_data:@skillSetData}%>ビューをロードすると、未定義メソッド 'each 'がnilになります。部分的にNilClassエラーが発生しました。つまり、skill_sets/_skillsetdata.html.erbです。変数データはどのように部分に渡されますか? – adhital

+0

アクセスする内容と使用する内容によって異なります。 '@ skillSetData'はコントローラ内で定義されたインスタンス変数で、' skills_set_data'は部分的に利用できる変数です。エラーを出すコードは何ですか?それを追加できますか? –

+0

<%skills_set_data.each do | single_skill | %>部分的にコードのこの部分、すなわち:skill_sets/_skillsetdata.html.erbがエラーを出しています。読み込んでいるページはstatic_pages/home.htmlです。 – adhital

0

を私はここにあなたの問題があると思う:skill_sets/skillsetdata

<%= render partial: 'skill_sets/skillsetdata', locals: { skills_set_data:@skillSetData } %> 

あなたが書いた通り:

skill_set/skillsetdata.html.erbの以下のコードは、すべてのデータを表示しています。右の名前であることを

:ここskill_set/skillsetdata

は右の名前です:

<%= render partial: 'skill_set/skillsetdata', locals: { skills_set_data:@skillSetData } %> 
+0

ファイルがskill_setsというフォルダの下にあるので、正しいと思うのはskill_sets/skillsetdata – adhital

関連する問題