我做了以下事情。我安装了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
编辑:请找到错误消息:
答案 0 :(得分:0)
这是康康宝石的一个问题。我尝试了下面的skip_load_resource。它现在正在工作。
load_and_authorize_resource skip_load_resource only: [:create]