Tính năng này hoạt động trên Rails 2.3.x và Rails 3.0.x!
Trên hành động mới trong bộ điều khiển, hộp kiểm được đặt thành true.
# in the controller
def new
@user = Person.find(:first)
@user.active = true
end
Trong biểu mẫu: hộp kiểm được chọn với giá trị mà người dùng đã đăng.
# in the view
<%= form_for ..... |f| %>
...
<%= f.check_box :active %>
...
<% end %>
Một cách khác, nhưng không quá tốt (nếu bạn muốn thay đổi logic bạn phải thực hiện một di cư mới) là để thiết lập : default => 1 trong sự di cư của mô hình đã cho và thuộc tính.
class CreatePeople < ActiveRecord::Migration
def self.up
create_table :people do |t|
...
t.boolean :active, :null => false,
:default => 1
t.timestamps
end
end
def self.down
drop_table :people
end
end
Tôi không đọc/ghi giá trị check_box vào db, vì vậy chuyển sang check_box_tag và sử dụng công tắc đúng giải quyết vấn đề. Cảm ơn! – daustin777
Các phương pháp _tag dành cho các biểu mẫu không phải là mô hình. Các thẻ không phải là _tag. – wesgarrison
@wesgarrison Tôi đang sử dụng một check_box_tag như thế này <% = check_box_tag "benificiary_id [# {b.id}]", b.id,: name => "benificiary_id []"%> ở đây làm cách nào để kiểm tra xem có bản ghi nào không đã kiểm tra hay không trong khi cập nhật? theo mặc định, hành động cập nhật của tôi lấy tất cả các giá trị hộp kiểm ngay cả khi một số không được chọn: ( –