0

Railsモデルで、新しいレコードを作成する場合にのみ属性にアクセスできるが、更新する場合はアクセスできないと言う方法はありますか?

何かのようなもの:

class DesiredModel < ActiveRecord::Base
   attr_accessible :type, :only => [:create]   # this is just example
   attr_accessible :type if :new_record?       # this is just example
end
4

2 に答える 2

2

このattr_accessibleようにパラメータ化することはできません。ただし、 を使用してロールのような条件を追加できます:as => :create。このようにして、ロールを追加することで、このフィールドで一括割り当てを許可できます。

attr_accessible :type, :as => :create

...

model.assign_attributes(params[:model], :create)
于 2012-08-21T11:15:04.247 に答える
2

attr_readonly を使用できます。属性値を設定できますが、レコードを更新すると属性が無視されます。更新後にモデルで reload を呼び出すと、属性が同じままであることがわかります。

于 2012-08-21T11:15:18.630 に答える