Ruby on Rails form_for 클래스가있는 필드 선택


200

이 벽에 머리를 대고 있습니다. 태그를 사용하여 간단한 선택 태그를 만들고 f.select싶지만 아무것도하지 않습니다. 아래에 예를 넣었습니다.

<%= f.select(:object_field, ['Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item 4'], :class => 'my_style_class')%>

기본적으로 양식이 제출되면 값을에 배치하는 간단한 목록입니다 object_field. 모든 것이 작동하지만 페이지 소스를 볼 때 클래스 태그는 포함되지 않습니다. 오류가 발생하지 않으며 모두 함께 건너 뜁니다.

누구든지 제안이 있으면 크게 감사하겠습니다.

답변:


449

이 방법으로 시도하십시오 :

<%= f.select(:object_field, ['Item 1', ...], {}, { :class => 'my_style_class' }) %>

select도우미는 선택 옵션과 html 옵션의 두 가지 옵션 해시를 사용합니다. 따라서 항목 목록 다음에 기본 빈 옵션을 첫 번째 매개 변수로 제공 한 다음 클래스를에 추가하면됩니다 html_options.

http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-select


2
돈에 바로 감사합니다. 나는 그것이 단순하고 당연한 일이어야한다는 것을 알았습니다.
Patrick

나는 haml 에서이 방법을 시도했지만 "요소가있는 firebug의 요소 검사"클래스가 보이지 않는 이유를 모르겠습니다. 내 코드 = f.select (: gender, [[ 'Male', true], [ 'Female ', false]], {}, {: class => "drop", : style => "opacity : 0;"})
Gagan Gami 2016 년

@GaganGami이 코드를 사용하여 작업했습니다. = f.select(:stars, [['Male', true], ['Female', false]], {}, {:class=>"form-control",:style=>"opacity: 0;"}) 불투명도를 0으로 설정하면 필드가 보이지 않습니다.
Robert

f.select가 마지막에 블록을 통과하면 어떻게 해야하는지 알고 있습니까? 내가 시도한 조합으로 수업이 진행되지 않는 것 같습니다.
Tashows

설명
주셔서

21

이와 같은 프롬프트 옵션을 추가 할 수도 있습니다.

<%= f.select(:object_field, ['Item 1', 'Item 2'], {include_blank: "Select something"}, { :class => 'my_style_class' }) %>

12

이것은 나를 위해 작동

<%= f.select :status, [["Single", "single"], ["Married", "married"], ["Engaged", "engaged"], ["In a Relationship", "relationship"]], {}, {class: "form-control"} %>

2

당신은 여기에서 볼 수 있습니다 : http://apidock.com/rails/ActionView/Helpers/FormBuilder/select

또는 여기 : http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/select

선택 태그는 최대 4 개의 agrument를 가지며 마지막 agrument는 html 옵션이므로 클래스, 필수, 선택 옵션을 여기에 넣을 수 있습니다.

= f.select :sms_category_id, @sms_category_collect, {}, {class: 'form-control', required: true, selected: @set}

selected: @set내가 처음에 넣을 때 나를 위해 작동합니다 {}.
user1515295
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.