アウトプット
何日も頭を悩ませてるのですが中々できない
param is missing or the value is empty: toppage_params が中々解決できません。
そもそもparamsが存在しない?というのもよくわからないのですが、色々試してみました。
まずは下記原型のコード
top_page_controller.rb
class TopPageController < ApplicationController
def index
@toppages = TopPage.all
end
def new
@toppage = TopPage.new
end
def create
TopPage.create(toppage_params)
redirect_to top_page_index_path
end
def show
end
private
def toppage_params
params.require(:toppage_params).permit(:contents)
end
end
改善を加えたコードが下記です。
top_page_controller.rb
class TopPageController < ApplicationController
def index
@toppages = TopPage.all
end
def new
@toppage = TopPage.new
end
def create
@toppage = TopPage.create(toppage_params)
redirect_to top_page_index_path
end
def show
end
private
def toppage_params
params.permit(:contents)
end
end
これでエラーはなくなったのですが案の定データが引き渡されていません。
正直、やる前から何となくそうだろうなーと思ってました。。。。
@toppageはnewメソッドで定義してるやつをそのまま使わなければいけないはずなのでcreateでこれだと再定義しているのか?
いずれにせよ form_for form_tag form_withでストロングパラメーター周りの記述法が若干変わるらしく
そこらへんの構造がよくわからない状態。