2012-04-09 20 views
10

Có vẻ như chỉ là một tài liệu nhỏ về tính năng grouped_select trong simple_form 2.0 tại http://simple-form.plataformatec.com.br/#usage/collections. Tài liệu cung cấp dòng:Tạo nhóm bằng cách sử dụng gem đơn giản trên Rails 3.2

f.input :country_id, :collection => @continents, :as => :grouped_select, :group_method => :countries 

Nhưng điều đó dường như không cho tôi đủ ngữ cảnh để làm cho nó hoạt động. Đây là những gì tôi có.

Tôi có ba mô hình: Tin nhắn của bạn, quảng cáo, và các Lồng ghép

Quảng cáo has_many Insertions và Insertions belongs_to Quảng cáo Inquiry belongs_to Insertion, và Insertions has_many thắc mắc

thả xuống này dành cho xem Tin nhắn của bạn. Sử dụng simple_form Tôi có thể nhận được = f.input :insertion, :collection => @ads để ít nhất xuất một danh sách các tiêu đề quảng cáo trong danh sách thả xuống. Tôi muốn ad.title phục vụ như là optgroup. Sau đó, tôi muốn có quảng cáo chèn để phục vụ như các nội dung có thể lựa chọn ... nên cái gì như:

<select> 
    <optgroup label="Ad.Title"> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    </optgroup> 
    <optgroup label="Ad.Title"> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    </optgroup> 
</select> 

bất cứ ai có thể đưa ra bất kỳ lời khuyên về làm simple_form này việc tính năng? Tôi thực sự đánh giá cao nó!

Vui lòng cho tôi biết nếu tôi có thể cho bạn biết bất kỳ điều gì khác về ứng dụng nếu bạn có thông tin chi tiết về cách thực thi thuộc tính này.

Cảm ơn trước!

UPDATE: Tôi đã có thể để có được một cái gì đó một phần làm việc sử dụng:

= f.input(:insertion_id, :collection => Ad.order(:name), :as => :grouped_select, :group_method => :insertions) 

Vấn đề với điều này là không có cách nào để xác định những gì cột được sử dụng như hiển thị văn bản từ những gì tôi có thể nói . Tôi hoan nghênh mọi đầu vào.

Trả lời

20

Sau một số nghiên cứu bổ sung, tìm kiếm tài liệu tốt hơn và chơi với cú pháp tôi đã giải quyết những gì tôi đang tìm kiếm.

Các Rails chuẩn grouped_collection_select trông như thế này:

= f.grouped_collection_select(:insertion_id, Ad.order(:name), 
           :insertions, :name, :id, :title, 
           include_blank: "Please Choose...") 

này có thể được làm lại trong việc sử dụng simple_form 2.0 với cú pháp sau:

= f.input(:insertion_id, :collection => Ad.order(:name), 
         :as => :grouped_select, 
         :group_method => :insertions, 
         :group_label_method => :name, 
         :label_method => :title, 
         :include_blank => "Please Choose...") 

Tôi hy vọng rằng sẽ giúp những người khác trong tương lai.

+0

lưu ass của tôi. Cảm ơn! : D –

0

Một phương pháp khác là:

<%= f.input :product_category do %> 
    <%= f.select :product_category, grouped_options_for_select(Product.PRODUCT_CATEGORY), include_blank: true %> 
    <% end %> 

này hoạt động tốt khi bạn đang cố gắng để tạo thành một optgroup chọn mà không cần dùng modals kỷ lục hoạt động.

tham khảo: https://github.com/plataformatec/simple_form#wrapping-rails-form-helpershttp://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-option_groups_from_collection_for_select

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