Help us understand the problem. What is going on with this article?

ruby 投稿実装機能が出来ない

アウトプット
何日も頭を悩ませてるのですが中々できない
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でストロングパラメーター周りの記述法が若干変わるらしく
そこらへんの構造がよくわからない状態。

forest0720
前職販売職 26歳 未経験から横浜の自社受託会社にエンジニア転職致しました。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away