0

JSON APIを持つRails 3.2.2アプリケーションで作業していて、データを挿入するのに CLIクライアントを使用しています。作成者 モデルを除いて正常に動作します。私は新しい投稿を作成しようとすると(ポストBELONGS_TO:著者と 者にhas_many:記事を)私は次のエラーを取得:attr_accessibleを使用しても保護された属性を一括割り当てできません

<h1> 
    ActiveModel::MassAssignmentSecurity::Error in PostsController#create 
</h1> 
<pre>Can't mass-assign protected attributes: name</pre> 

を私はトピックの研究の多くをしましたが、私は何の作業溶液 見つかりませんでした。 - 。(私はMassAssignentエラーを回避するためにattr_accessible使用して、それがすべての 他のモデルのためではなく、「著者」name属性のために働く

ここ

は、Authorモデルである:

class Author < ActiveRecord::Base 
    attr_accessible :name, :email 

    extend FriendlyId 
    friendly_id :name, use: :slugged 

    # some validations 

    has_many :posts 
    #authlogic 
    acts_as_authentic 

    # some stuffs 
end 

は実は、私は無効になっwhitelist_attributesを持っており、それは私の問題を解決し が、私はそれがこれを行うための便利な方法ではないと仮定し(そしておそらく ない良いアイデア)。

私の質問は次のとおりです:なぜattr_accessibleがここで動作しないのですか?そして、どのように ホワイトリストを無効にせずに問題を解決することができますか?

は、

レヴァン

EDITありがとう:

新しい投稿を作成する方法:

def create 
    @post = Post.new(params[:post]) 
    @post.author = current_author 
    # respond to etc. 
end 

current_authorが与えられたAPIキーを使用して、著者を検索します。

+0

上で動作acts_as_taggable_on宝石(https://github.com/mbleigh/acts-as-taggable-on) を使うのか? 'attr_accessible'がやっていることのいくつかを「取り消し」することは可能でしょうか?チェックしておらず、それについて何も知らない、ただのアイデア。 –

+0

あなたの答えをありがとう。ほとんどの他のモデルはfriendly_idを使用します – R3v4n

+0

Bummer;大丈夫:)クラス宣言で同じ順序で? –

答えて

1

解決策が見つかりました!

問題は、私はRailsの3.2上では動作しませんacts_as_taggable_on_steroidsプラグインを...使用したことだった:-)

「著者は」持っている唯一のモデルですので

:name属性が、私は問題が来たと思いました著者から...しかし問題はTagモデル(acts_as_taggable_on_steroidプラグインにあります)にありました。確かに、:name属性は "アクセス可能"ではありません。

だから、私は他のモデルは `friendly_id`を使用していますが正しくRailsの3.xの

関連する問題