0

私は PragProg の (明らかに古い - 私は Rails 3.2.3 を使用しています) Rails for PHP Developersを通じて Rails を独学しています。この本では触れられていないこの種の rb ファイルを発見しました。私は多くのものに対して適切なシードエントリを構築しようとしましたが、can't mass-assign protected attributes.

一連の検索の後、私の唯一のオプションは、これらのものを開くattr_accessibleか、一括割り当てをブロックするデフォルトの機能をオフにすることです。しかし、その設定が意味するセキュリティはすべて維持したいと考えています。これらのエントリがシードされた後は編集されたくありません。これらを最初にデータベースに入れるだけです。

ここには何が表示されていませんか? 保護をオフにせずにこれらのデータをシードするにはどうすればよいですか? シードは特別なケースである必要があり、他の方法では許可されていない大量割り当てを許可するようです。

4

1 に答える 1

1

attr_accessible一括割り当てに対して常に開いている必要がある属性のリストを指定するため、これらの属性をシード用にのみ開きたい場合は、これは望ましくない可能性があります。

シード ファイルでできることの 1 つは、各属性に対して setter メソッドを使用することです。例えば:

admin = User.new do |u|
  u.name = "Foo"
  u.admin = true
end

admin.save!
于 2012-06-22T19:55:50.540 に答える