Ruby on rails 为什么使用Ruby on Rails';User.create!(:email=>;&x27;ha&&x27;,:identifier=>;>;&x27;foo&&x27;)不工作?

Ruby on rails 为什么使用Ruby on Rails';User.create!(:email=>;&x27;ha&&x27;,:identifier=>;>;&x27;foo&&x27;)不工作?,ruby-on-rails,ruby-on-rails-3,activerecord,restful-authentication,Ruby On Rails,Ruby On Rails 3,Activerecord,Restful Authentication,(我使用的是Rails 2.2.2,但应该非常类似于2.3.5或3.0) 以下线路工程: User.create!(:email => 'ha') 但是我生成了一个迁移,并将标识符添加到用户表中,重新启动Rails控制台,并使用 User.create!(:email => 'bar', :identifier => 'foo') 此用户是使用创建的,电子邮件字段设置为bar(如mysql中所示),但identifier未设置为foo。。。有什么原因吗 db/sc

(我使用的是Rails 2.2.2,但应该非常类似于2.3.5或3.0)

以下线路工程:

User.create!(:email => 'ha')
但是我生成了一个迁移,并将
标识符
添加到用户表中,重新启动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

尝试将
attr\u accessible
添加到
User
模型:

def User
  attr_accessible :identifier
end
如果您不想为
标识符添加
attr\u accessible
(例如,不应允许用户设置自己的标识符),则需要先保存用户,然后单独设置标识符:

User.create!(:email => "a@a.com")

u = User.find_by_email("a@a.com")
u.identifier = "foo"
u.save!

这是你的真实复制粘贴代码吗?如果是这样的话,你就错了。如果没有,请发布您的实际代码。哦。。。打字错误修正。。。这不是因为打字错误…您正在使用
create命令正确。如果你想要一个更好的答案,你需要向我们展示一些代码。您的模型和架构至少有一个。@Jack是的。。。Rails控制台返回的对象确实显示了一个
标识符
字段。。。数据库日志还显示一个带有
标识符的
插入
,其值为
NULL
。。。但是
分数
有一个默认值,比如说20,所以我想知道是否有一个地方可以设置默认值。。。是否应该在
models/user.rb
中?这方面的规则是什么。。。所以
create
create
如果要设置任何初始值,两者都需要有此
属性可访问:字段名称
?有关于这个的文档/教程吗?谢谢。
attr\u accessible
表示属性可以“批量分配”,例如,当属性从表单中获得时。退房啊,我明白了。。。这是为了保护黑客在代码使用“批量分配”时将随机记录发送到表中。。。因此,属性是可访问的“白名单”的东西,可以大规模分配。。。