1. ホーム
  2. ruby-on-rails

[解決済み】attr_accessorとattr_accessibleの違いについて

2022-04-03 11:43:32

質問

Railsでは、以下の違いは何ですか? attr_accessorattr_accessible ? 私の理解では attr_accessor は、その変数に対するゲッターとセッターのメソッドを作成するために使用されます。 Object.variable または Object.variable = some_value .

私が読んだのは attr_accessible は、その特定の変数を外部からアクセスできるようにします。 何が違うのか、どなたか教えてください。

どのように解決するのですか?

attr_accessor はRubyのメソッドで、ゲッターとセッターを作ります。 attr_accessible はRailsのメソッドで、大量の代入に値を渡すことができます。 new(attrs) または update_attributes(attrs) .

ここでマス目の課題です。

Order.new({ :type => 'Corn', :quantity => 6 })

注文に割引コードが含まれていることも想像できます。 :price_off . もし :price_off として attr_accessible というように、悪意のあるコードができないようにするのです。

Order.new({ :type => 'Corn', :quantity => 6, :price_off => 30 })

フォームに :price_off もしそれがモデルにあれば、デフォルトで利用可能です。つまり、細工されたPOSTでもそれを設定することができるのです。使用方法 attr_accessible は、大量に割り当てることができるものをホワイトリストにします。