我在我的数据库中添加了一个序列化列...
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`
我做错了什么?
答案 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,我测试了有没有哈希,它似乎在两种情况下都有效。感谢您的反馈意见。
谢谢大家。