序列化字段无法保存rails

时间:2013-04-06 13:28:13

标签: ruby-on-rails ruby

我在我的数据库中添加了一个序列化列...

class AddRegQuestionsColumnToUsers < ActiveRecord::Migration
   def change
   add_column :users, :reg_questions, :text
  end
end  

class User < ActiveRecord::Base
     attr_accessible :reg_questions
     serialize :reg_questions, hash
end

Ran rake db:migrate

然后尝试将哈希传递给rails控制台中的字段...

[1] pry(main)> a=User.new
 => #<User:0x3ffa10aef3e0>

[2] pry(main)> a.reg_questions={"9"=>"Yes", "10"=>"Yes", "11"=>"Yes", "12"=>"Yes", "13"=>"Yes", "14"=>"Yes", "15"=>"Yes", "16"=>"Yes"}
=> {"9"=>"Yes",
   "10"=>"Yes",
   "11"=>"Yes",
   "12"=>"Yes",
   "13"=>"Yes",
   "14"=>"Yes",
   "15"=>"Yes",
   "16"=>"Yes"}

[3] pry(main)> a.save
(0.1ms)  begin transaction
(0.1ms)  rollback transaction
 => false`

我做错了什么?

2 个答案:

答案 0 :(得分:0)

确定您需要序列化Hash

答案 1 :(得分:0)

这个问题的解决方案是我没有完全填写保存所需的验证。它与我添加的序列化字段无关。

a.save provided...

@messages=
{ :email=>["can't be blank", 
           "can't be blank"],
 :password=>["can't be blank"]}

Rossta提供了一种通过使用.errors来解决保存错误问题的好方法。

Dana,我测试了有没有哈希,它似乎在两种情况下都有效。感谢您的反馈意见。

谢谢大家。