2011-10-24 16 views
1
<% form_for :customer, :url => {:action => :save_order} do |f| %> 
    <%= f.error_messages %> 

<%= f.label :"Select Payment Method" %> 
<%= f.select :payment_method, [['Cash','cash'],['Credit Card','credit card']] %> 

<p> 
    <%= f.label :customer_first_name %><br /> 
    <%= f.text_field :first_name %> 
</p> 


<p> 
    <%= f.label :customer_last_name %><br /> 
    <%= f.text_field :last_name %> 
</p> 


<p> 
    <%= f.label :email_address %><br /> 
    <%= f.text_field :email %> 
</p> 
    <% if @customer.payment_method == "Credit Card" %> 

<p> 
    <%= f.label :credit_card %><br /> 
    <%= f.text_field :credit_card_number %> 
</p> 

    <% else %> 
    <% end %> 
    <%= f.submit "Place Order"%> 

ここに私のコードです。私は、ユーザーが支払い方法としてクレジットカードを選択したときにクレジットカード番号フィールドを表示したいだけです。しかし、ドロップダウンメニューでクレジットカードを選択すると、何も起こりません。ご協力いただきありがとうございます!ビューのif-elseステートメント

答えて

4

ifステートメントはサーバー側で実行されますが、ドロップダウンリストの変更に応答するにはクライアント側のロジックが必要です。あなたは関係なく、クレジットカード「P」を示しているが、これにはいくつかのjQueryは似ていた後、CSSを経由して、最初はそれを隠すことができ -

$("payment_method").change(function() { 
    if ($(this).val() == "credit card") $(".creditcard").show(); 
}) 
+0

どうすればよいですか?私は新しいレールです。 –

1

あなたはこの問題に対処するためにJavascriptを使用する必要があります。あなたがしようとしているのは、コードがサーバーサイドで一度解析されるためです。ここで

はsimmilar問題を扱っているRailscastです:

http://railscasts.com/episodes/88-dynamic-select-menus

あなたは、あなたの問題に技術を移転することができます。

関連する問題