一連の注文ステップの一部であるネストされたフォームがcustomer
あります-顧客情報の入力、配送情報の入力など。ユーザーが次の段階に進むと自動的に顧客が作成されますが、その後そのステップに戻ると、コントローラーが使用するため、顧客の詳細を再度入力する必要があります@order.build_customer
。
そのページに戻ったときに、ネストされた顧客フィールドに事前入力する最もクリーンな方法は何ですか? ユーザーが「編集」を押したときに、顧客 ID をパラメーターとして渡す必要がありますか? またはしようとしfind_or_create
ますか?
コード例を歓迎します - 私はまだ学んでいます... ありがとう!
OrdersController のステップ
def step_two
@user = User.find(params[:user_id])
@order = Order.find(params[:order_id])
@order.build_customer
end
step_two.html.haml のネストされたフォーム コード
= form_for @order, :url => user_order_step_two_path(@user, @order), do |f|
=f.fields_for :customer do |builder|
=builder.label :name, "Contact name:"
=builder.text_field :name
=builder.label :email, "Email:"
=builder.text_field :email
= f.label :recipient_name, "Recipients name:"
= f.text_field :recipient_name
= f.label :recipient_address_1, "Address:"
= f.text_field :recipient_address_1