ruby-on-rails - Ruby on Rails - 复选框未保存到数据库?

标签 ruby-on-rails checkbox boolean

我有一个迁移,它使用一个 boolean 值并在其 View 中生成一个复选框。但是,无论我点击什么,保存到数据库中的值都不受影响。

我的迁移如下所示:

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> 

Controller 只是脚手架生成的默认值。

如果我在迁移中设置默认值,则该值始终保存在数据库中。如果我不设置默认值,则它始终为 NULL。

任何人都可以提出解决方案,对可能出现问题的建议吗?

任何建议表示赞赏。

谢谢。

最佳答案

哦,我忘记在模型中设置 attr_accessible 了。

关于ruby-on-rails - Ruby on Rails - 复选框未保存到数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2217726/

相关文章:

ruby-on-rails - Rails - 如何更改 ActionController::RoutingError 的日志级别

ruby-on-rails - 如何从非本地计算机访问我的 Web 应用程序?

c# - ASP.NET Webforms 复选框事件发送参数

html - 我想使用 html 在表格的每一行旁边添加一个复选框

Ada 中的 boolean 大小

ruby-on-rails - ActiveRecord::NoDatabaseError: FATAL: role "postgres"does not exist 当我尝试在 rails 中迁移 bd

ruby-on-rails - rails 4 在 postgres 的多个列上选择不同的位置和限制

javascript - 如果复选框被选中,则只允许下一个复选框被选中

java - 如何在 Smali 中将 iput-object boolean 值设置为 true?

c# - 等待动画在 unity3d 中完成