我有一个模特投票。投票具有属性vote_type。在我的控制器中我这样做
@vote = Vote.fetch(1)
logger.warn("current vote_type: #{@vote.vote_type}")
@vote.vote_type = false
@vote.save
这不会引发任何错误,但我在服务器中看到以下内容
Vote Columns (0.7ms) SHOW FIELDS FROM `votes`
current vote_type: true
SQL (0.1ms) BEGIN
SQL (0.1ms) ROLLBACK
我不知道为什么会回滚。我做错了什么?
答案 0 :(得分:1)
Rails的一个常见问题是尝试'validate_presence'的布尔值。该验证使用.blank?和false.blank =>真正。因此,要验证布尔值的存在,请使用:
validates :vote_type, :inclusion => {:in => [true, false]}
答案 1 :(得分:1)
如果字段“没有值” - 这就是错误 - 则删除所需的=>从原始迁移中返回true并重新创建该表/ db(或创建一个删除所需设置的新迁移)。