###前提・実現したいこと
ひとつのnew.html.erbで三種類のテーブルに保存できるようそれぞれのform_forを設定しています。
3つのform_forは独立して動かしたいのですが、連動してしまいapple_params is missing or the value is empty:appleというエラーが出てしまいます。
そこでform_forにhidden_fieldを設定し、そのparams[:flag]の値によってcase文で連動を防ごうとしているのですが、エラーになってしまいます。
###発生している問題・エラーメッセージ
正しい書き方がわかりません。
undefined local variable or method 'params' for ItemsController:Class
###該当のソースコード
new.html.erb
ruby
1<%= form_for @orange, :url => {:action => :create} do |f| %> 2 <%= f.hidden_field :flag, :value => "orange" %> 3 <%= f.file_field :image %> 4 # ~略~ 5<% end %> 6 7<%= form_for @apple, :url => {:action => :create} do |f| %> 8 <%= f.hidden_field :flag, :value => "apple" %> 9 <%= f.file_field :image %> 10 # ~略~ 11<% end %> 12 13<%= form_for @grape, :url => {:action => :create} do |f| %> 14 <%= f.hidden_field :flag, :value => "grape" %> 15 <%= f.file_field :image %> 16 # ~略~ 17<% end %> 18
controller
ruby
1def create 2 Orange.create(orange_params) 3 @oranges = Orange.all 4 5 Apple.create(apple_params) 6 @apples = Apple.all 7 8 9 Grape.create(grape_params) 10 @grapes = Grape.all 11end 12 13private 14 case params[:flag] 15 when orange 16 def orange_params 17 params.require(:orange).permit(:image, :use_list) 18 19 when apple 20 def apple_params 21 params.require(:apple).permit(:image, :use_list) 22 23 when grape 24 def grape_params 25 params.require(:grape).permit(:image, :use_list) 26 27 else 28 end 29end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/10/07 14:11
2016/10/07 14:35
退会済みユーザー
2016/10/08 12:51
2016/10/08 17:15
退会済みユーザー
2016/10/09 11:44