こんにちは私は、Railsのセキュリティホールのためにアプリケーションが悪用されているGITHUBで何が起こったのかを考慮して、NOOBの質問があります。
Railsでオブジェクト属性を保護しながら、該当する場合はそれらに値を割り当てることができるようにするための最良の方法は何ですか?
ありがとう
こんにちは私は、Railsのセキュリティホールのためにアプリケーションが悪用されているGITHUBで何が起こったのかを考慮して、NOOBの質問があります。
Railsでオブジェクト属性を保護しながら、該当する場合はそれらに値を割り当てることができるようにするための最良の方法は何ですか?
ありがとう
実際、Rails 3.1には、ロールを使用した一括割り当てを処理するための新しい組み込みの方法が追加されています。これは、おそらく確認したいものです。
ここにリリースノート
基本的には次のように機能します。
class User < ActiveRecord::Base
attr_accessible :name
attr_accessible :name, :role, :as => :admin
end
これにより、次の方法を使用して、ユーザーがコントローラーの1つで自分の情報を更新できるようになります。
@user.update_attributes(params[:user])
:role
そして、その使用法では、ユーザーモデルの属性を更新することはできません。ただし、管理者ユーザーが別のコントローラーで役割を管理している場合は、次の構文を使用できます。
@user.update_attributes(params[:user], :as => :admin)
これにより、:role
属性も更新できるようになります