gpt4 book ai didi

ruby-on-rails - 为什么 Ruby on Rails 的 User.create!( :email => 'ha' , :identifier => 'foo' ) not work?

转载 作者:行者123 更新时间:2023-12-04 05:31:52 24 4
gpt4 key购买 nike

(我使用的是 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

最佳答案

尝试添加 attr_accessibleUser模型:

def User
attr_accessible :identifier
end

如果您不想添加 attr_accessibleidentifier (因为说,不应该允许用户设置自己的标识符),那么你需要先保存用户,然后单独设置标识符:
User.create!(:email => "a@a.com")

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

关于ruby-on-rails - 为什么 Ruby on Rails 的 User.create!( :email => 'ha' , :identifier => 'foo' ) not work?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5011676/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com