対応するモデルでアクセスしようとしているフォームにフィールドがありますが、モデル データベース テーブルの一部ではありません。これを処理する最善の方法は何ですか? これは悪い習慣ですか?
質問する
6014 次
1 に答える
32
データベーステーブルにないモデル属性があってもかまいません。これらは仮想属性と呼ばれます。
'virtual_attribute'という属性を処理するとします。これがあなたがそれに対処する方法です:
あなたのフォームにいる間、あなたはこのようなものを持っているでしょう:
<%= f.check_box :virtual_attribute %>
モデルでは、これを行う必要があります。
attr_accessor :virtual_attribute
これは、その属性のセッターとゲッターを提供する組み込みのRubyメソッドであることに注意してください。
#getter
def virtual_attribute
@virtual_attribute
end
#setter
def virtual_attribute=(value)
@virtual_attribute = value
end
于 2012-06-16T02:33:48.763 に答える