首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >form_for复选框不会将布尔值传递给数据库(Rails4和mongoid4)

form_for复选框不会将布尔值传递给数据库(Rails4和mongoid4)
EN

Stack Overflow用户
提问于 2013-11-14 04:21:59
回答 1查看 359关注 0票数 0

我正在使用以下gem版本:

代码语言:javascript
复制
gem 'rails', '4.0.1'
gem 'mongoid', '~> 4', github: 'mongoid/mongoid'
gem 'devise', '3.2.0'

我试图用下面的形式将一个布尔选择传递给mongoid:

代码语言:javascript
复制
= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f|
  = f.check_box :tos_agreement
  = t(".do_you_accept_our_toc")

我的模型是这样的:

代码语言:javascript
复制
class User
  include Mongoid::Document

  field :tos_agreement, :type => Boolean

服务器日志显示:

代码语言:javascript
复制
Started POST "/da/users" for 127.0.0.1 at 2013-11-13 19:41:32 +0100
Processing by RegistrationsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"nyfk//kJtXXM1MMSWln5fTn4P2vzzeP4XzgC3GTT/tk=", "user"=>{"tos_agreement"=>"1"}, "commit"=>"Create", "locale"=>"en"}
  MOPED: 127.0.0.1:27017 QUERY        database=mydb_development collection=users selector={"email"=>"example@gmail.com"} flags=[] limit=-1 skip=0 batch_size=nil fields={:_id=>1} runtime: 0.9030ms

正如您所看到的,"1"是从表单传递过来的,但我也尝试过使用"yes""true"

当我启动控制台时,我可以看到没有注入布尔值,相反,字符串具有:

代码语言:javascript
复制
2.0.0p247 :001 > User.last
 => #<User _id: 5283c38563687282c5000000, email: "example@gmail.com", tos_agreement: "1">

如何插入布尔值?

EN

回答 1

Stack Overflow用户

发布于 2014-01-03 08:23:37

field :tos_agreement, :type => Mongoid::Boolean

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19963547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档