2011-01-19 9 views
2

Ruby(1.9.2)Rails(2.3)を使用しています。Hamlラジオボタン事前選択構文

私はラジオボタンの事前選択を設定しようとしている

...

- form_for @user, :url => plan_user_url, :html => { :method => 'put', :class => 'form' } do |f| 
    - @plans.each do |p| 
    %span 
     %p= p[:blurb] 
     %p= p[:price] 
     - p[:features].each do |f| 
     %p= f 
     = f.radio_button {:id => p[:id], :checked => @user[:plan_id]==p[:id] || nil} 
     = f.label :plan_name, p[:name] 
    %p 
     %br 
    .spacer 

    .field.first 
    = f.submit 'Update', :class => 'button ok' 
    .field 
    = link_to 'Cancel', redirect_back_url || root_url, :class => 'button cancel' 

HAMLは、この行を好きではない:

= f.radio_button {:id => p[:id], :checked => @user[:plan_id]==p[:id] || nil} 

すべてのヘルプは高く評価されます。

答えて

-5

ブライアンからのヒントありがとう。それはあらかじめ選択するために働く

f.radio_button :plan_id, p[:id] 

作品です。

+1

上記の答えにあなた自身の答えを記入してください。 – Yule

+0

これは間違っています – gkaykck

11

これは、無効なR​​ubyのコードです:あなたはradio_buttonメソッドを呼び出そうとしている

= f.radio_button {:id => p[:id], :checked => @user[:plan_id]==p[:id] || nil} 

とRubyはあなたがそれをブロックを渡しているが、実際にあなたがそれをHashを渡していると考えています。これは良いです:

ProcHash間のあいまいさを削除しますが、それはまだ奇妙な
= f.radio_button :id => p[:id], :checked => @user[:plan_id]==p[:id] || nil 

。なぜ|| nilが欲しいですか?私はそれが不要だと思う:

= f.radio_button :id => p[:id], :checked => @user[:plan_id] == p[:id] 
+0

ありがとう、ブライアン。あなたが言っていることが分かります。私はあなたが提案し何をしようとしたとなった。この アプリ/ビュー/ユーザーを表示/ plan.html.hamlどこライン#22が提起:引数の 間違った番号(2用1) 20: - のp [:機能]それぞれの| f | 21:%p = f 22:= f.radio_button:id => p [:id]、:checked => @user [:plan_id] == p [:id] 23:= f.label:plan_name 、p [:name] アイデア? – Mei

+1

'radio_button'呼び出しは、' form_for'呼び出しが使用したオブジェクトの値にマップする必要があります。したがって、 'f.radio_button:plan_id'が必要なように見えます。 –

+0

はい、f.radio_button:plan_id、p [:id]はあらかじめ選択されています!ありがとう、ブライアン。 – Mei

関連する問題