2012-07-09 12 views
23

Tôi có một simple_form mà tôi đang cố gắng để luôn luôn bao gồm một mục trống trong nó, như một giá trị 'nil' trong trường đó có một đặc biệt ý nghĩa trong cơ sở dữ liệu này. Để làm cho nó rõ ràng hơn cho người dùng cuối, tôi cũng muốn tiêu đề nó với một cái gì đó dọc theo dòng "(chọn nếu không có)".Rails - simple_form, bao gồm một đối tượng trống có tên trong một bộ sưu tập mới và chỉnh sửa

Tôi hiện đang làm điều này, nhưng nó chỉ chèn mục 'trống' khi tạo đối tượng mới, không phải khi chỉnh sửa một đối tượng.

# _child_form.html.erb 

<%= simple_form_for @child do |f| %> 
    <%= f.input :first_name %> 
    <%= f.input :last_name %> 
    <%= f.association :parent, :collection => @parents, :prompt => "(select if none)" %> 

    <%= f.button.submit %> 
<% end %> 

.

# child_controller.rb 

def new 
    @child = Child.new 
    @parents = Parent.all 
end 

def edit 
    @child = Child.find(params[:id]) 
    @parents = Parent.all 
end 

Trả lời

53

Bạn muốn sử dụng :include_blank, không :prompt

<%= f.association :parent, :collection => @parents, :include_blank => "(select if none)" %> 

The documentation

+0

Cảm ơn vì điều đó. Tôi đã đọc tài liệu đó đủ thời gian và rõ ràng là vẫn tiếp tục bỏ qua phần đó. – bdx

+0

Lưu ý: '' 'include_blank:: Tất cả''' sẽ KHÔNG hoạt động. '' 'include_blank: 'Tất cả'''' không ... – kwerle