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

3

そのエラーに遭遇したばかりで、すでに修正する方法を見つけました。

解決策: controllerの 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 に答える