2011-01-19 1 views
2

우리는 Ruby (1.9.2) Rails (2.3)를 사용합니다.Haml 라디오 버튼 사전 선택 구문

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

어떤 도움에 감사드립니다 : 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' 

내가 라디오 버튼에 대한 사전 선택을 설정하기 위해 노력하고있어

....

답변

-5

브라이언의 힌트를 주셔서 감사합니다. 그것은

f.radio_button :plan_id, p[:id] 

가 사전 선택을 위해 작동합니다.

+1

위 답변에 대한 크레디트로 자신의 답변을 수락하는 이유는 무엇입니까? – Yule

+0

잘못되었습니다. – gkaykck

11

이 무효 루비 코드입니다 : 당신은 radio_button 메소드를 호출하려고 시도하고

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

루비 당신이 그것을 블록을 통과하고 있지만 정말 당신이 그것을 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 일) 20 : - P는 [을 : 기능] .each do | f | 21 : % p = f 22 : = f.radio_button : id => p [: id], : checked => @user [: 계획 _id] == p [: id] 23 : = f.label : plan_name , p [: 이름] 아이디어가 있으십니까? – Mei

+1

'radio_button' 호출은'form_for' 호출이 사용하는 객체의 값으로 매핑해야하므로'f.radio_button : plan_id'가 필요합니다. –

+0

예, f.radio_button : plan_id, p [: id]가 사전 선택을 위해 작동합니다! 고마워, 브라이언. – Mei