0

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

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

运行 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`

我究竟做错了什么?

4

2 回答 2

0

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

a.save provided...

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

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

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

谢谢大家。

于 2013-04-06T23:12:13.553 回答
0

好吧,你肯定需要序列化Hash​​.

于 2013-04-06T13:40:31.210 回答