2012-05-04 36 views
6

Tôi đang sử dụng trường collection_select, nhưng cần phải thêm các tùy chọn với một số mặc định, không đại diện cho một bản ghi mô hình cụ thể và được sử dụng để đặt trường phù hợp thành NULL. Nhưng tôi không thể tìm được cách nào để làm điều đó.Rails: Thêm tùy chọn vào collection_select

Nếu bạn cần thêm thông tin, đừng bắt buộc phải hỏi. Sử dụng Rails 3.2.3 với trình trợ giúp biểu mẫu chuẩn.

P.S. Tôi biết tôi có thể làm một cái gì đó như thế này:

@parents = ['default_name','nil'] 
@parents << Model.all.map {|item| [item.name,item.id]} 

Nhưng tôi nghĩ rằng đó là một cách thanh lịch hơn.

Trả lời

15

Có một: Tùy chọn include_blank bạn có thể vượt qua để collection_select phương pháp helper:

f.collection_select(:author_id, Author.all, :id, :name_with_initial, 
        :include_blank => "Nothing selected") 

Ngoài ra còn có một tùy chọn tương tự gọi: nhắc, kiểm tra nó ra quá.

+1

Cảm ơn rất nhiều. Không nhận thấy thông số đó. Sẽ trông đẹp hơn. – Almaron

+0

Sự kết hợp của ': prompt' và': include_blank' thực sự rõ ràng, thay vì 'select' tùy chỉnh. Cảm ơn –

1

Nội dung nào đó có thể chấp nhận được trong chế độ xem của bạn?

collection_select :field1, :field2, @models+[Model.new(name: "default_name")], :name, :id 
10

Bạn có thể sử dụng chọn thay vì:

f.select(:item_id, @items.collect {|p| [ p.name, p.id ] } + ['Or create a new one like','new'], {:include_blank => 'Please select a item'}) 
+0

Đây chỉ là những gì tôi cần, THANK YOU! – Thomas

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