내 질문은 유사하다 이 하나 있지만, 레일 응용 프로그램에 대한.
라디오 버튼이있는 양식이 있으며 레이블을 연결하고 싶습니다. label형태 도우미는 매개 변수로 양식 필드이 필요하지만이 경우에 나는 하나의 양식 필드에 대해 여러 개의 라디오 버튼이 있습니다. 내가 볼 수있는 유일한 방법은 라디오 버튼에 자동으로 생성 된 ID를 하드 코딩하여 레이블을 수동으로 만드는 것입니다. 누구든지 더 좋은 방법을 알고 있습니까?
예를 들면 다음과 같습니다.
<% form_for(@message) do |f| %>
<%= label :contactmethod %>
<%= f.radio_button :contactmethod, 'email', :checked => true %> Email
<%= f.radio_button :contactmethod, 'sms' %> SMS
<% end %>
이것은 다음과 같은 것을 생성합니다 :
<label for="message_contactmethod">Contactmethod</label>
<input checked="checked" id="message_contactmethod_email" name="message[contactmethod]" value="email" type="radio"> Email
<input id="message_contactmethod_sms" name="message[contactmethod]" value="sms" type="radio"> SMS
내가 원하는 것 :
<input checked="checked" id="message_contactmethod_email" name="message[contactmethod]" value="email" type="radio"><label for="message_contactmethod_email">Email</label>
<input id="message_contactmethod_sms" name="message[contactmethod]" value="sms" type="radio"> <label for="message_contactmethod_sms">SMS</label>
:value옵션을 전달f.label하면 같은 일을합니다. 예<%= f.label :contactmethod, 'SMS', :value => 'sms' %>. 이렇게하면 레이블 태그의 "for"속성이 올바르게 설정되므로 레이블을 클릭하면 적절한 단일 선택 단추가 선택됩니다. 위의 답변에서 단순히label도우미 를 사용하면 라디오 버튼이 FormBuilder로 생성 될 때 "for"속성이 올바르지 않게됩니다