4

Rails アプリの注文確認ページを作成しようとしていますが、落ち着いた方法でそれを行う方法がよくわかりません。

この質問にはいくつかの回答があり、そこにたどり着きましたが、問題は、ユーザーがすべての詳細を含む確認ページに移動できるように、Rails ビューでフォームを設定する方法がよくわからなかったことです。作成アクションの代わりに。

今、私の見解は単純です:

        <% form_for :order do |f| %>
      <%= f.error_messages %>
      <p>
        <%= f.label :first_name %><br />
        <%= f.text_field :first_name, :size => 15 %>
      </p>
      <p>
        <%= f.label :last_name %><br />
        <%= f.text_field :last_name, :size => 15 %>
      </p>
      (Be sure to enter your name as it appears on your card)
      <p>
        <%= f.label :card_type %><br />
        <%= f.select :card_type, [["Visa", "visa"], ["MasterCard", "master"], ["Discover", "discover"], ["American Express", "american_express"]] %>
      </p>
      <p>
        <%= f.label :card_number %><br />
        <%= f.text_field :card_number %>
      </p>
      <p>
        <%= f.label :card_verification, "Card Verification Value (CVV)" %><br />
        <%= f.text_field :card_verification, :size => 3 %>
      </p>
      <p>
        <%= f.label :card_expires_on %><br />
        <%= f.date_select :card_expires_on, :discard_day => true, :start_year => Date.today.year, :end_year => (Date.today.year+10), :add_month_numbers => true %>
      </p>
  <p><%= f.submit "Submit" %></p>

すべての注文の詳細を表示する確認ページにユーザーを誘導するには、どうすればよいですか?

ありがとう!

賢司

4

3 に答える 3

10

この質問にはいくつかの回答があり、そこにたどり着きましたが、問題は、ユーザーがすべての詳細を含む確認ページに移動するように、Rails ビューでフォームを設定する方法がよくわからなかったことです。作成アクションの代わりに。

フォームを非標準ページに誘導するのは非常に簡単です。

URL オプションform_forを追加します。そのような

<% form_for :order do |f| %>

になる

<% form_for :order :url => {:action => "confirm"} do |f| %>

ルートで確認アクションをクレートする必要がありますが、それには次のことだけが含まれます。

map.resources :orders, :collection => {:confirm => :get}

ここで必要なのは、基本的なコントローラー アクションとビューだけです。

def confirm
  @order = Order.new(params[:order])
  unless @order.valid?
    render :action => :new
  else       
  end
end

ビューは、作成アクションに @order を送信するフォームが追加されていることを除けば、show ビューとほとんど同じに見えるはずです。

于 2009-12-14T21:02:56.423 に答える
2

たとえば、ajax を介して確認を取得し、結果を取得してオーバーレイ div として配置し、確認時に元の値をフォームに送信してみませんか。

それでも自分のやり方で行う必要がある場合は、魔法のように確認してくださいまさにそのような用途向けに設計されています。

于 2009-12-14T20:48:07.970 に答える