2010-02-07 15 views
5

मुझे एक माइग्रेशन मिला है जो एक बूलियन मान का उपयोग करता है और इसके दृश्य में एक चेकबॉक्स उत्पन्न करता है। हालांकि, कोई फर्क नहीं पड़ता कि मैं क्या क्लिक करता हूं, डेटाबेस में सहेजा गया मान प्रभावित नहीं होता है।रेल पर रूबी - चेकबॉक्स डेटाबेस में सहेज नहीं रहा है?

मेरे प्रवास इस तरह दिखता है:

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 

मेरा विचार इस तरह दिखता है:

<% 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 %> 

कौन सा निम्न HTML पैदा करता है:

<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> 

नियंत्रक बस है मचान द्वारा उत्पन्न डिफ़ॉल्ट।

यदि मैं माइग्रेशन में डिफ़ॉल्ट सेट करता हूं, तो वह मान हमेशा डेटाबेस में सहेजा जाता है। यदि मैं डिफ़ॉल्ट सेट नहीं करता हूं, तो यह हमेशा शून्य होता है।

क्या कोई भी समाधान सुझा सकता है, क्या गलत हो सकता है पर सुझाव?

किसी भी सलाह की सराहना की।

धन्यवाद।

उत्तर

1

कोशिश semantic_form_for के बजाय form_for का उपयोग करने और <%= form.check_box_field :allow_comments %>

+0

हाय, यह कोई फर्क नहीं पड़ता – Dan

14

रवींद्र साथ <%= form.input :allow_comments %> की जगह, मैं मॉडल में attr_accessible सेट करना भूले था।

+2

मैंने भी यही गलती की। धन्यवाद। :) –

+1

एक और गलती के साथ एक और! – workdreamer

संबंधित मुद्दे