我做了以下几件事。我安装了strong_parameters gem。
1)我创建了一个初始化程序,并添加了以下行ActiveRecord::Base.send(:include,ActiveModel::ForbiddenAttributesProtection)
2)将attr_accessible从模型中删除。
然后我被试着创建一个新的记录,而不是创建方法本身。它给ActiveModel::ForbiddenAttributes错误。请解释一下有什么问题吗?
请查找以下代码:
config/initializers/strong_parameters.rb
ActiveRecord::Base.send(:include, ActiveModel::ForbiddenAttributesProtection)app/models/role.rb
class Role < ActiveRecord::Base
#attr_accessible :name, :description
validates :name, presence: true, uniqueness: { case_sensitive: false}
endapp/controllers/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编辑:请查找错误消息:

发布于 2015-01-08 06:50:58
这是坎坎宝石的问题。我尝试了下面的skip_load_resource。现在起作用了。
load_and_authorize_resource skip_load_resource only: [:create] https://stackoverflow.com/questions/27819801
复制相似问题