2011-10-23 7 views
0

の下では3.1レール質量レール割り当てのデフォルトの動作は何ですかは、私は新鮮な新しいレールのプロジェクトを作成し、このような新しいリソースを足場場合

def create 
    @user = User.new(params[:user]) 
    respond_to do |format| 
    if @user.save 
     ... 
    else 
     ... 
    end 
    end 
end 

ユーザーモデルにはattr_accessibleが定義されていないため、このアクションにフォームを投稿すると、この作成が機能する理由がわかりません。 attr_accessibleは大量割り当てを許可しますが、ここではデフォルトは何ですか?

答えて

3

Railsのデフォルトでは、任意のデータベース属性の一括割り当てが許可されているため、attr_accessibleのコンテキスト内でその名前と電子メール文字列を定義して一括割り当てする必要はありません。あなたはattr_accessibleが、その後attr_accessible内のみ属性が大量に割り当てられます、定義されている場合、割り当て集結することができ、属性のホワイトリストを定義したい場合

さて、attr_accessibleに便利です。

同様に、attr_protectedは、質量割り当てで使用できない属性のブラックリストを定義するために使用されます。

これらのプロパティは、を定義しない限り、のいずれも発生しません。そのため、コードはattr_accessibleなしで正常に動作します。私は個人的には、ブラックリストアプローチよりもはるかに安全なため、ホワイトリストアプローチを個人的に狙っています。あなたのアプリケーションはattr_accessibleを使わずに動作しますが、結局のところ、セキュリティ上の予防措置として使用することをお勧めします。

+0

これ以上は言えませんでした。優れた説明@ケンリ – ardavis

関連する問題