私のアプリケーションでは、Widget
モデルがあります。これは、テーブルによる関連付けを通じてhas_manyをFeature
持つモデルです。 WidgetFeature
要件に従って、WidgetFeatureオブジェクトを送信するときに、関連付けられている特定の機能について、そのオブジェクトにもfeature_nameを追加する必要があります。
それを行うには2つの方法があります。
- オブジェクトを送信するときに、次のようにします。
widget_feature_object[:feature_name] = feature_name_value
widget_feature_object[:feature_name]
次に、オブジェクトに(キー、値)ペアがあるため 、コントローラーまたはビューでアクセスできるので、別のペアを追加することもできます。
2。モデルfeature_name
で仮想属性をWidgetFeature
作成し、そのためのゲッターメソッドとセッターメソッドを作成します。
私の知る限り、モデルに実際に存在するフィールドとは異なる別のビューを作成する場合は、仮想属性を使用する必要があります(たとえば、フルネーム=名+姓)。
同じことがここにも当てはまりますか?
また、Railsはオブジェクトに対してキャッシュを実行しますか?これは、最初のアプローチを使用するときではなく、仮想属性を使用するときに役立つ可能性がありますか?
各アプローチの長所と短所は何ですか?また、私の要件に従ってどれが最も適していますか?どうもありがとう。