1

私の Rails アプリには、選択タグを使用するフォームが多数あります。今日まで、これらの選択を設定するために、ivar を初期化してきました。

しかし、それはメンテナンスの問題になりつつあります。newまたはeditアクションを実行しているときに ivar を設定することを覚えておくのは簡単です。より問題なのは and アクションですcreateupdateフォームに必要な 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
4

1 に答える 1

0

attr_accessorおよびを使用しattr_accessibleて、入力しているドロップダウンのこれらの値を保持できます。作成時に検証し、検証の問題がある場合はそれらの値を返します。

ただし、xmlとjsonが異なるという部分はわかりませんが、これもうまくいくはずです。

于 2012-04-18T12:24:13.553 に答える