【发布时间】:2011-06-28 01:19:15
【问题描述】:
(我使用的是 Rails 2.2.2,但应该与 2.3.5 或 3.0 非常相似)
以下行有效:
User.create!(:email => 'ha')
但是我生成了一个迁移并将identifier添加到用户表中,并重新启动了Rails控制台,并使用了
User.create!(:email => 'bar', :identifier => 'foo')
创建此用户,并且电子邮件字段设置为 bar(如 mysql 中所示)但 identifier 未设置为 foo... 有什么原因吗?
db/schema.rb:
create_table "users", :force => true do |t|
t.string "login"
t.string "email"
t.string "crypted_password", :limit => 40
t.string "salt", :limit => 40
t.datetime "created_at"
[...]
t.string "short_bio"
t.string "identifier"
end
【问题讨论】:
-
那是您实际复制粘贴的代码吗?如果是这样,你有一个错字。如果没有,请发布您的实际代码。
-
哦...错字已修复...不是因为错字...
-
您正确使用了
create!命令。如果您想要比这更好的答案,您需要向我们展示一些代码。至少您的模型和架构。 -
@Jack yes... 并且 Rails 控制台返回的对象确实显示了一个
identifier字段... db 日志还显示了一个INSERT和identifier,除了它的值是 @987654333 @...但是score的默认值是20,所以我想知道是否有一个地方可以设置默认值...应该在models/user.rb中吗?
标签: ruby-on-rails ruby-on-rails-3 activerecord restful-authentication