2013-02-28 28 views
36

Tôi có đoạn mã này:loại bỏ một lựa chọn trống của trường chọn được tạo bởi SimpleForm

= f.input :category, :as => :select, :label => false, :collection => Choices["Categories"] 

Lựa chọn [ "Categories"] chỉ là một hash của cặp => giá trị then chốt.

SimpleForm tạo trường chọn với tất cả các tùy chọn cần thiết, nhưng nó cũng làm cho tùy chọn đầu tiên trống.
Tùy chọn trống này xuất hiện trong tất cả các trường được tạo bởi SimpleForm.

Nhưng tôi không muốn có tùy chọn trống. Có cách nào để loại bỏ nó không?

Thứ gì đó như :allow_blank_option => false?

Tôi đã cố gắng xác thực sự hiện diện của thuộc tính này với hy vọng rằng SimpleForm sẽ phát hiện ra nó, nhưng nó không giúp ích gì.

Trả lời

74

Bạn có thể vượt qua một tùy chọn include_blank: false, include_hidden: false:

= f.input :category, :as => :select, :label => false, :collection => Choices["Categories"], include_blank: false, include_hidden: false 
+0

Các tác vụ dừng hoạt động với Biểu mẫu đơn giản 3.4.0. Cảm ơn! – Hendrik

+1

nó không hoạt động khi ai đó loại bỏ tất cả các tùy chọn! – rony36

+0

không hoạt động với tôi trong 3.4 – letz

0

hoặc bạn có thể tùy chỉnh gọi lại hành động trong mô hình của bạn để loại bỏ bất kỳ chuỗi rỗng trong tham số mảng, giả sử một tham số với tên gọi "loại":

before_validation :remove_empty_string 

def remove_empty_string 
    types.reject! { |l| l.empty? } 
end 
Các vấn đề liên quan