2010-02-07 24 views
5

Tôi đã có di chuyển sử dụng giá trị boolean và tạo hộp kiểm trong chế độ xem của nó. Tuy nhiên, không có vấn đề gì tôi nhấp vào, giá trị được lưu vào cơ sở dữ liệu không bị ảnh hưởng.Ruby on Rails - Hộp kiểm không lưu vào cơ sở dữ liệu?

di cư của tôi trông như thế này:

def self.up 
    create_table :blogposts do |t| 
     t.string :title 
     t.text :body 
     t.boolean :allow_comments, :default => false 
     t.references :author 
     t.references :lasteditor 
     t.timestamps 
    end 
    end 

Quan điểm của tôi trông như thế này:

<% semantic_form_for([:controlpanel, @blogpost]) do |form| %> 
<%= form.error_messages %> 
<% form.inputs do %> 
<%= form.input :title %> 
<%= form.input :body %> 
<%= form.input :allow_comments %> 
<% end %> 
<%= form.buttons %> 

nào tạo ra HTML sau:

<li class="boolean required" id="blogpost_allow_comments_input"> 
<label for="blogpost_allow_comments"> 
<input id="blogpost_allow_comments" name="blogpost[allow_comments]" type="checkbox" value="1" /> 
<input name="blogpost[allow_comments]" type="hidden" value="0" />Allow comments 
<abbr title="required">*</abbr> 
</label> 
</li> 

Bộ điều khiển chỉ là mặc định được tạo bởi giàn giáo.

Nếu tôi đặt mặc định trong quá trình di chuyển, giá trị đó luôn được lưu trong cơ sở dữ liệu. Nếu tôi không đặt mặc định, nó luôn là NULL.

Có ai có thể đề xuất giải pháp, đề xuất về những gì có thể xảy ra không?

Bất kỳ lời khuyên nào được đánh giá cao.

Cảm ơn.

Trả lời

1

Hãy thử sử dụng form_for thay vì semantic_form_for và thay thế <%= form.input :allow_comments %> với <%= form.check_box_field :allow_comments %>

+0

Xin chào, không có bất kỳ sự khác biệt nào – Dan

14

Doh, tôi muốn quên để thiết lập attr_accessible trong mô hình.

+2

Tôi cũng mắc phải sai lầm tương tự. Cảm ơn. :) –

+1

Một lần nữa, với cùng một sai lầm! – workdreamer

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