来自模型表单的ActiveModel :: ForbiddenAttributesError。

时间:2015-03-23 22:57:00

标签: ruby-on-rails

我试图创建一个表单来创建一个新的模型实例:

class Pokemon < ActiveRecord::Base
    belongs_to :trainer
    attr_accessor :name
end

在页面上:

<h1>Create a New Pokemon</h1>
<%= simple_form_for(@pokemon) do |f| %>
  <%= f.input :name  %>
  <%= f.button :submit %>
<% end %>

使用控制器:

class PokemonsController < ApplicationController
  def new
    @pokemon = Pokemon.new
  end

  def create
    @pokemon = Pokemon.new(params[:pokemon]) #error stack comes from here
    @pokemon.trainer = current_trainer
    if @pokemon.save
      redirect_to trainer_path(current_trainer)
    end
  end

  private

  def pokemon_params
    params.require(:name).permit(:trainer)
  end
end

但我一直遇到以下错误:

ActiveModel::ForbiddenAttributesError

我尝试按照Active Model Forbidden attributes error添加params.require(...)。permit(...)但是没有运气。有什么可能是错的洞察力?我对rails非常陌生。

1 个答案:

答案 0 :(得分:3)

试试这个:

params.require(:pokemon).permit(:name)

更改您的创建操作:

def create
  ...
  @pokemon = Pokemon.new(pokemon_params)
  ...
end