ActiveModel :: ForbiddenAttributes错误

时间:2015-01-07 12:43:22

标签: ruby-on-rails ruby ruby-on-rails-3 strong-parameters

我做了以下事情。我安装了strong_parameters gem。

1)我创建了一个初始化器并添加了以下行ActiveRecord :: Base.send(:include,ActiveModel :: ForbiddenAttributesProtection)

2)我从模型中删除了attr_accessible。

然后我试图创建一个新记录,它不是创建方法本身。它给出了ActiveModel :: ForbiddenAttributes错误。请解释一下可能是什么问题?

请找到以下代码:

配置/初始化/ strong_parameters.rb

 ActiveRecord::Base.send(:include, ActiveModel::ForbiddenAttributesProtection)

应用/模型/ role.rb

 class Role < ActiveRecord::Base
  #attr_accessible :name, :description
  validates :name, presence: true, uniqueness: { case_sensitive: false}
 end

应用/控制器/ roles_controller.rb

 class RolesController < ApplicationController

  def create
   @role = Role.new(role_params)
   if @role.save
     redirect_to roles_path, notice: t('Role was successfully created.', default: 'Role was successfully created.')
  else
     render action: "new"
  end
 end

 private

 def role_params
  params.require(:role).permit(:name,:description)
 end

end

编辑:请找到错误消息:

enter image description here

1 个答案:

答案 0 :(得分:0)

这是康康宝石的一个问题。我尝试了下面的skip_load_resource。它现在正在工作。

 load_and_authorize_resource skip_load_resource only: [:create]