我有一个模型,我允许管理员用户的所有更新。
这是控制器和型号中的相关代码:
private:
class ModelsController < ApplicationController
def model_params
params.require(:model).permit! if current_user.admin?
end
def update
@model = Model.find(params[:id])
respond_to do |format|
if @model.update_attributes(model_params)
format.html { redirect_to @model, notice: 'model was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit",flash:
{error:@model.errors.full_messages.join(', ')} }
format.json { render json: @model.errors, status: :unprocessable_entity }
end
end
end
end
class Model < ActiveRecord::Base
include ActiveModel::ForbiddenAttributesProtection
end
然而, 当我从活动的管理编辑页面更新属性时,我仍然得到ActiveModel :: ForbiddenAttributesError
相关宝石: Rails4,Ruby2.0,activeadmin
答案 0 :(得分:1)
我遇到了同样的问题。您还可以指定允许的字段。
ActiveAdmin.register Post do
permit_params :title, :content
end
答案 1 :(得分:0)
事实证明我必须允许params独立进行活动管理,如此
ActiveAdmin.register Model do
controller do
def permitted_params
params.permit!
end
end
end