1
私は動的フォームジェネレータに取り組んでいます。そして私は、私は大量の割り当てを使用して新しいフィールドを作成することができますし、属性によってフィールドを追加することはできませんなぜ誰かが説明できますか?モンゴイイフィールドの問題
class Model
include Mongoid::Document
field :name, :type => String
end
model = Model.new
model.name = "My Name"
model.surname = "My Surname"
#=> NoMethodError: undefined method `surname='
しかし
model = Model.new(:name => "My Name", :surname => "My Surname")
#=> ok
model.surname
#=> "My Surname"
model.surname = "New Surname"
#=> "New Surname"
奇妙な行動に気づいてきましたか
を参照してくださいには、@Dylanをありがとう!これは、同じ機能である – fl00r
です。 'model [:surname] =" My Surname "'と 'model.write_attribute(:surname、" My Surname ")'です。違いはなんですか?私はちょうどテストしました - かなり同じですが、そのドキュメント記事にはコメントはありません – fl00r
ソースコードには 'alias:[]:read_attribute'がありますので、まったく同じです(' [] = 'と' write_attribute ')。あなたが好むものだけを使用してください。 –