0
我正在使用postgressql 9.3.1和Rails 4.1.4,并遇到一些奇怪的事情:默认情况下设置为false的值将被保存为true!为什么Rails使用默认值保存/返回错误值?
在schema.rb
,我有:
create_table "practice_scores", force: true do |t|
...
t.boolean "visualized", default: false
t.boolean "selected", default: false
...
end
我:
practice_score = PracticeScore.new(assessment: @respondent.assessment, practice: @practice, user: @respondent.user)
@respondent.questions << Question.new(practice: @practice, practice_score: practice_score)
我相信这会自动保存practice_score
当Question
保存和selected
为practice_score的值将是false
。当我使用导轨控制台检查对象时,它是true
。
是否有轨道可能覆盖的价值?
是的,记录都是保存的。我认为Rails足够聪明,知道它需要将模型的id用作外键。 – 2015-01-21 00:15:44
这很奇怪。我已经开始并在测试过程中重启了我的Rails服务器几次,我得到了预期的行为。我想知道是什么导致了这个问题? – 2015-01-21 00:23:00
不确定。我有过工作流程出错的协作经验,事情最终会从一个分支生成的schema.rb文件中结束,但这听起来不像是你遇到的问题。很高兴简单的重置工作。比倾销分贝更好。 – Jay 2015-01-21 00:33:15