0

ビューが params ハッシュをコントローラーに渡さないという問題が発生しています。データベースに新しいアイテムを追加するビューで定義されたフォームがあり、エラーが発生しています:

ActionController::ParameterMissing:
  param not found: item

問題のフォーム ヘルパーのコード ファイルと、アクションを処理するコントローラーを次に示します。

new.hmtl.erb

<%= form_for(@item) do |f| %>
  <%= f.label :name %>
  <%= f.text_field :name %>

  <%= f.label :description %>
  <%= f.text_field :description %>

  <%= f.submit "Add", class:"btn btn-large btn-primary %>
<% end %>

items_controller.rb

class ItemsController < ApplicationController
  def new
    @item = Item.create(set_params)
  end

  private
    def set_params
      params.require(:item).permit(:name, :description)
    end
  end
end

私が見た他の質問から、これを修正する方法についての確かな答えはまだ見ていないと思います。

4

1 に答える 1

3

あなたのnewアクションは、フォームをレンダリングして新しいアイテムを作成するものです。このアクションがレンダリングされると、パラメーターは空白になります。

あなたのcreateアクションは、フォームを処理するものであり、そこでパラメーターが設定されます。

于 2013-08-05T06:13:51.417 に答える