フォームを使用して (ネストされた) レコードを追加/編集/削除する 1 つの方法は、対応するモデルで :accepts_nested_attributes_for: を使用することです。ただし、このネスティングが (データベースの正規化のため) 約 4 レベルに拡張され、Web サイトで編集するためにこれらすべてのレベルを表示したい場合、この方法はかなり面倒 (かつ醜い) と思われます。
必要なデータを 1 か所で編集できるゲッター メソッドとセッター メソッドを使用して「スーパー」モデルを定義する方法があるかどうか疑問に思っていました。簡単な例として、次のことを考慮してください。
class Person < ActiveRecord::Base
attr_accessible :name, :age
has_one :address
end
class Address < ActiveRecord::Base
attr_accessible :street, :zip, :country
belongs_to :person
end
名前、年齢、通り、郵便番号、国を 1 つの形式で表示/編集/更新/etc したいと考えています。accept_nested_attributes_for を使用してこれを行う方法は明らかです。しかし、Person から ID を渡すことによって、両方のクラスの名前、年齢、通り、郵便番号、国を組み合わせたクラス、たとえば、PersonalInformation が必要です。次に、このクラスを Web サイトのインターフェイスとして使用したいと思います。