2010-11-02 40 views
169

Tôi đang đập đầu vào tường trên cái này. Tôi muốn tạo một thẻ chọn đơn giản bằng cách sử dụng thẻ f.select nhưng không có gì tôi làm. Tôi đặt một ví dụ bên dưới:Ruby on Rails form_for trường chọn với lớp

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

Ok, về cơ bản nó là một danh sách đơn giản khi biểu mẫu được gửi nó đặt giá trị vào object_field. Điều đó tất cả các công trình, nhưng xem nguồn trang thẻ lớp không được bao gồm. Nó không ném một lỗi, nó chỉ bỏ qua tất cả cùng nhau.

Nếu có bất kỳ đề xuất nào, tôi sẽ đánh giá cao điều đó.

Trả lời

383

Hãy thử cách này:

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

select helper có hai lựa chọn băm, một cho lựa chọn, và thứ hai cho các tùy chọn html. Vì vậy, tất cả những gì bạn cần là cung cấp các tùy chọn trống mặc định làm thông số đầu tiên sau danh sách các mục và sau đó thêm lớp của bạn vào html_options.

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

+1

Đúng tiền, cảm ơn bạn rất nhiều, điều đó đã làm được điều đó! Tôi biết rằng nó phải là một cái gì đó đơn giản và tất nhiên nó đã được. – Patrick

+0

Tôi đã thử cách này trong haml nhưng không biết tại sao trong phần "Kiểm tra Element trong firebug với element" không được thấy ở đây là mã của tôi = f.select (: gender, [['Male', true], [' Nữ ', sai]], {}, {: class => "thả",: style => "opacity: 0;"}) –

+0

Cảm ơn bạn! Những công việc này! –

15

Bạn cũng có thể thêm tùy chọn nhắc như thế này.

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

Công việc này đối với tôi

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

Bạn có thể thấy ở đây: http://apidock.com/rails/ActionView/Helpers/FormBuilder/select

Hoặc ở đây: http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/select

Chọn thẻ đã maximun 4 agrument, và agrument cuối cùng là html tùy chọn, điều đó có nghĩa là bạn có thể đặt lớp, yêu cầu, tùy chọn lựa chọn tại đây.

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

'được chọn: @ set' làm việc cho tôi khi tôi đặt nó trong đầu tiên' {} '. – user1515295

Các vấn đề liên quan