2013-05-25 5 views
0

사용자가 몇 가지 옵션 중 하나를 선택하는 형식입니다. 그의 대답은 다른 곳에 표시 될 것이므로 잘 형식화되어야합니다.Rails의 radio_button 값에 공백과 특수 문자를 사용하려면 어떻게해야합니까?

레일스에서 ​​라디오의 값을 설정하면 id 속성에도 사용되므로 공백이나 다른 특수 문자를 사용할 경우 유효하지 않습니다.

<%= radio_button :a, "Yes, I want bananas." %> 
<%= radio_button :a, "No, I rather have strawberries." %> 

내가이이로 출력 할 싶습니다 :

<input type="radio" name="a" id="a_yes_i_want_bananas" value="Yes, I want bananas."> 
<input type="radio" name="a" id="a_no_i_rather_have_strawberries" value="No, I rather have strawberries."> 

내가 radio_buttonvalue 옵션을 강제로 시도했지만 작동하지 않았다

아래의 예를 참조하십시오.

아이디어가 있으십니까?

업데이트.

사용자가 하나의 옵션 만 선택하면됩니다. 그러나 내 문제는 :

을 호출 할 때 부여한 값은 idvalue으로 사용됩니다. id을 매개 변수화하고 싶지만 대문자 및 공백과 같은 형식을 유지하려면 value이 필요합니다.

"아니요, 딸기가 있습니다."라는 문자열을 원합니다. 그대로 제출하지만 id는 "a_no_i_rather_have_strawberries"가됩니다.

아직 명확하지 않은 경우 알려주십시오. 당신이 볼 수 있듯이 나는 영어로 그다지 좋지 않다. = P

그것을 넣어 또 다른 방법은 다음과 같습니다

내가이 일을하고 싶습니다 :

<%= radio_button :foo, "my_super_option", :value => "You are awesome! %> 

그러나 레일 내 value 옵션을 무시합니다.

답변

1

나는 미쳤다고 생각합니다. 레일스는 마침내 value 속성을 특수 문자로 유지하기 시작했지만 id 속성을 매개 변수화했습니다.

: 모든 것이 예상대로 작동 이제

<input type="radio" name="form_option" id="form_option_hi_would_you_like_coffee" value="Hi! Would you like a coffe ?"> 

:

<%= f.radio :option, 'Hi! Would you like a coffe ?'%> 

이되었다. 여러분에게 문제를 일으키며 미안합니다. 모든 것에 대해 감사드립니다.

1

당신은 선택적으로 사용할 수 있습니다

<%= radio_button_tag(:a, "bananas") %> 
    <%= label_tag(:a_bananas, "Yes, I want bananas.") %> 
<%= radio_button_tag(:a, "strawberries") %> 
    <%= label_tag(:a_strawberries, "No, I rather have strawberries.") %> 
+0

문제는 레이블, 입력'value' 속성이 아닙니다. –

0

을이 actuallly 입력의 선택처럼 보인다. 당신은 아마 이것에 대한 확인란을 사용한다 :

<%= f.checkbox :flavor, "strawberry" %> 
<%= f.checkbox :flavor, "bananas" %> 

라디오 버튼이 여러 가지 옵션 중 하나를 선택을 의미, 무엇을 당신의 예에서 알 수하면 하나의 선택을 표시해야한다는 것입니다.

항상 라디오 버튼을 사용할 수 있지만 "딸기"및 "바나나"와 같은 특정 값을 지정하고 레이블에 설명 텍스트를 사용하십시오.

+0

아니, 그건 내가 의미하는 바가 아니야. 사용자는 하나의 옵션 만 선택합니다. 문제는 라디오의 대문자, 공백 등을 유지하기 위해서입니다. –

1

첫 번째 문자열 매개 변수가 값이기 때문에 마지막 코드 예제가 작동하지 않는다고 생각합니다. 따라서 옵션 해시의 값은 무시됩니다.

id를 옵션 해시의 일부로 지정해 보았습니까?

<%= radio_button :a, "Yes, I want bananas.", id: "yes_i_want_bananas" %> 
<%= radio_button :a, "No, I rather have strawberries", id: "no_i_rather_have_strawberries" %> 
+0

ID를 수동으로 제공 할 때의 문제는 레일스가 자동으로 생성 할 때 객체 이름을 추가하고 그와 같은 것을 만드는 마법을 생략한다는 것입니다. 인덱스가있는 중첩 된 객체 인 경우 더욱 심각합니다. :/ –

+0

원래 예제에서'radio_button' 대신'radio_button_tag'을 사용하면 어떻게 될까요?'radio_button_tag : a, "예, 바나나가 필요합니다". 라벨을 뺀 원하는 것을 생성합니까? 아니면 그 경우에도 '가치'를 무시합니까? – lurker

+0

정말 모르겠지만 FormBuilder 객체 외부에서 모델 이름을 직접 추가해야하기 때문에 나쁠 것입니다. 'option_a'와'form [my_model] [option_a]'와 같은 것. –

관련 문제