我试图创建一个表单来创建一个新的模型实例:
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非常陌生。
答案 0 :(得分:3)
试试这个:
params.require(:pokemon).permit(:name)
更改您的创建操作:
def create
...
@pokemon = Pokemon.new(pokemon_params)
...
end