3

我正在构建的应用程序使用 Activeadmin 作为后端界面。

我目前使用它来为我的客户轻松生产,以便将简单的东西添加到后端,如产品等。

我已经使用 rails 4 和 activeadmin rails 4 兼容版本进行了设置。

当我在后端添加新乐队时,我收到此错误:

ActiveModel::ForbiddenAttributesError in Admin::BandsController#create
ActiveModel::ForbiddenAttributesError

Request

Parameters:

{"utf8"=>"✓",
 "authenticity_token"=>"YnzHk2juyZ6W2kVS5ZVPCimoj7LSHRI1Oen4BHjaqfc=",
 "bands"=>{"title"=>"Kings of Leon",
 "picture"=>"blank"},
 "commit"=>"Create Bands"}

我知道这与在后端创建一个新项目有关,但我不确定从哪里开始修复这个错误。

任何帮助都会很棒,

谢谢

4

2 回答 2

10

只需将以下行添加到您的 app/admin/brand.rb

permit_params :title, :picture

然后重新启动您的服务器。

于 2013-12-10T08:20:24.660 回答
3

我刚刚遇到了这个错误,我已经找到了修复它的方法。

解决方案:阐明控制器中 params 的permit语法,这是 Rails 4 中的新功能,很容易出错。

例如,这些代码将出现错误(应用于permit参数然后使用原始参数):

params.require(:seller).permit(:company, :phone)
@seller.update_attributes(params[seller])

要修复它,请将它们替换为:

@seller.update_attributes(params.require(:seller).permit(:company, :phone))

...或重用允许的参数(推荐的解决方案)

new_attributes = params.require(:seller).permit(:company, :phone)
@seller.update_attributes(new_attributes)

希望它可以帮助你。

于 2013-09-19T07:16:39.853 回答