私の Rails アプリには、選択タグを使用するフォームが多数あります。今日まで、これらの選択を設定するために、ivar を初期化してきました。
しかし、それはメンテナンスの問題になりつつあります。new
またはedit
アクションを実行しているときに ivar を設定することを覚えておくのは簡単です。より問題なのは and アクションですcreate
。update
フォームに必要な ivar は、モデルに検証 (またはエラー) の問題がある場合にのみ入力する必要があります。
xml または json リクエストに応答するときに ivar が必要ないことを考えると、より良い方法があるかどうか疑問に思っています。
これは、_form パーシャル内でヘルパーを使用する必要がある場合ですか? これまで、私は常にヘルパー内のデータベース アクセスはコードの匂いだと考えていましたが、今はよくわかりません。
私の投稿が明確でない場合に備えて:
def create
@user = User.new(params[:user])
# this is what i do now - but is there a better way
unless @user.save
load_form_required_ivars # here I'm unnecessarily
# hitting the db for json/xml requests
end
respond_with(@user)
end