モデルのネストされたフィールドを初期化するための「適切な」方法を理解したいと思います。Railsフォームのネストされたフィールドを適切に初期化する方法
のは、あなたがモデルのためのいくつかのネストされたフィールドを持っているとしましょう:
class User
has_one :address
accepts_nested_attributes_for :address
end
そして、あなたはfields_for
呼び出しでそれらを使用する(この場合はaddress
)これらの属性を初期化する必要があります。
これまで私はこれを行う3つの方法を考えました。
まず、モデルのafter_initialize
フック:
class User
after_initialize :init_address
protected
def init_address
address ||= build_address
end
その後、我々はコントローラで初期設定があります。
class UsersController
def new
@user = User.new
@user.build_address
end
end
をそして最後に、私たちは私たちのためにそれを行うためのヘルパーメソッドを持つことができます。
標準または「ベストプラクティス」に似ているものはありますかシナリオですか?どうやってやるの?
もっと良い解決策がないので、私はこのことを担当する宝石を書きました。https://github.com/febuiles/auto_build –
古い投稿のようです。どのバージョンのRailsを使用していますか? –