Tôi có một mô hình MyModel
với thuộc tính được tuần tự a
, mô tả một mảng biểu tượng.Hiển thị danh sách hộp kiểm thay vì chọn nhiều
Mã này hoạt động:
<% form_for @my_model do |f| %>
<%= f.select :a, MyModel::AS, :multiple => true) %>
<% end %>
Các thông số là chính xác:
{ :my_model => { :a => [:a_value1, :a_value2] } }
Tôi muốn chuyển đổi nhiều này chọn vào một tập hợp các hộp kiểm, như thế này:
<% form_for @my_model do |f| %>
<% MyModel::AS.each do |a_value|
<%= f.check_box(:a_value) %>
<% end %>
<% end %>
Nó cũng hoạt động, nhưng các tham số không giống nhau:
{ :my_model => { :a_value1 => 1, :a_value2 => 1 } }
tôi nghĩ về 2 giải pháp để trở về giải pháp đầu tiên ...
- Biến đổi của tôi
check_box
vào , thay thế nhiều lựa chọn, và thêm một số javascript để 'kiểm tra' giá trị chọn khi người dùng clic trên check_box_tags. Sau đó, tham số sẽ giống nhau trực tiếp trong bộ điều khiển. - Thêm mã litte vào bộ điều khiển để 'điều chỉnh' các thông số của tôi.
Giải pháp nào kém xấu xí hơn? Hay có cái nào khác không?
Vượt qua 'nil' ở cuối và nó sẽ hoạt động như kiểm tra dự kiến [this] (http://apidock.com/rails/ActionView/Helpers/FormHelper/check_box) – Viren
@Viren Cảm ơn mẹo. – pierallard
Vui lòng chỉnh sửa câu trả lời của bạn nếu bạn muốn, cũng có lỗi đánh máy ở đó. Sau '<% MyModel :: AS.each do | a_value |' cần '%>'. Chỉ cần nói – ksugiarto