2017-07-22 12 views
0

フォームを使用してユーザーを作成しようとしていますが、フォーム内にselect_forタグがいくつかあります。レールアプリケーションでselect_forを使用してparamsを渡すことはできません

私は取得していますエラーは以下の通りです:paramが欠落しているか、値が空である:

シフタ、このような場合は、なぜ私はバインドを行うときに、すべてのパラメータが表示されているように私には、理解していません。てこ私は、コントローラは、以下の1

{

[1] pry(#<ShiftersController>)> params 
=> {"utf8"=>"✓", 
"authenticity_token"=>"1lilvIvZQeKawJDKHVhGzuerAOhQyxCz2kC6/MncWgiJz3lhFvOvt+N3XEc37kf7bhW1OIVG4IKdl26xvtXKKA==", 
"name"=>"Alex", 
"surname"=>"Swiec", 
"email"=>"[email protected]", 
"password"=>"password", 
"batch_id"=>"1", 
"accesslevel_id"=>"2", 
"alumni"=>"false", 
"commit"=>"Create New Profile", 
"controller"=>"shifters", 
"action"=>"create"} 

を印刷}

、ビューは、次のいずれか:

{

<%= render 'shared/errors', obj: @shifter %> 

<div class="row"> 
    <div class="well col-md-6 col-md-offset-3"> 
     <%= form_tag '/shifters/#{@shifter.id}/edit' do %> 

     <%= label_tag :name %> 
     <%= text_field_tag :name %> 

     <%= label_tag :surname %> 
     <%= text_field_tag :surname %> 


     <%= label_tag :email %> 
     <%= text_field_tag :email %> 

     <%= label_tag :password %> 
     <%= password_field_tag :password %> 

     <%= label_tag :batch_id %> 
     <%= select_tag :batch_id, options_for_select([['November 2013', 1], 
                 ['February 2014', 2], 
                 ['June 2014', 3], 
                 ['October 2014', 4], 
                 ['February 2015', 5], 
                 ['June 2015', 6], 
                 ['October 2015', 7], 
                 ['February 2016', 8],             
                 ['June 2016', 9],           
                 ['October 2016', 10],             
                 ['February 2017', 11], 
                 ['June 2017', 12]             
                 ]) %> 


     <%= label_tag :access_level_id %> 
     <%= select_tag 'accesslevel_id', options_for_select([ ['Shifter', 2], ['Coach', 3], ['Admin', 1]]) %> 


     <%= label_tag :alumni %> 
     <%= select_tag 'alumni', options_for_select([['Yes', false], ['No', false]]) %> 


<br><br> 


     <%= submit_tag(@shifter.new_record? ? 'Create New Profile' : 'Update Profile', class: "btn btn-success") %> 

     <% end %> 
    </div> 
</div> 

}

答えて

0

paramは欠落しているか、値が空である:

シフタのメソッドでは、shifterキーがparamsハッシュに存在すると予想され、存在しないため、そのエラーが発生します。

対処:

変更shifter_params

def shifter_params 
    params.permit(:name, :surname, :email, :password, :batch_id, :accesslevel_id, :alumni) 
end 

下にたいするはまた、form_tag非モデルフォームを作成するために使用されます。 form_forを使用してください。私はあなたが約読むことをお勧めしますform_tag vs form_for

+0

ありがとう@Pavan、これは働いた!レールで始まるので、なぜシフターキーが欠けているのか分かりません。これまでのすべてのフォームで、値を追加して送信しました。シフターが存在するようにコードをどのように変更できますか? – swiecone

+0

@swiecone 'form_for'を見て、' form_tag'ヘルパーメソッドを 'form_for'ヘルパーメソッドに変更してください。それは難しいことではありません:) – Pavan

+0

ありがとう、あまりにも@Pavan!あなたのための仮想ハイ5、そしてこれは最初の質問が投稿されているので、それはとても素晴らしい経験になるように感謝:) – swiecone

関連する問題