gpt4 book ai didi

ruby-on-rails - 在 ruby​​ 对象上调用 .save 只为所有字符串传递 nil

转载 作者:太空宇宙 更新时间:2023-11-03 17:58:11 24 4
gpt4 key购买 nike

我在处理 Ruby 中的一些初级问题时遇到了麻烦,特别是将对象保存到数据库中。这是代码

def add_user     
firstName = params[:name];
email = params[:email];
user = User.new(:name=>'test', :email=>email)
puts "user name" + user.name
if user.save
puts "User saved"
end
end

不幸的是,这是它在保存之后生成的:

SQL (0.4ms)  INSERT INTO "users" ("created_at", "email", "name", "updated_at")
VALUES (?, ?, ?, ?) [["created_at", Mon, 12 Mar 2012 17:24:52 UTC +00:00], ["email", nil], ["name", nil], ["updated_at", Mon, 12 Mar 2012 17:24:52 UTC +00:00]]

尽管我实际上将 'test' 硬编码到名称字段中,但所有内容都作为 nil 传递。此外 puts "user.name"+ user.name 确实打印出正确的名称。数据模型与 User 对象匹配。

Schema Information
Table name: users

id :integer # not null, primary key
name :string(255)
email :string(255)
created_at :datetime
updated_at :datetime

所以我不太确定发生了什么。我试着看看我是否应该使用实例变量,但我似乎一直得到相同的结果。这似乎也遵循我在任何书籍或教程中阅读的所有步骤。我可能做错了什么吗?

最佳答案

当您可能打算使用 attr_accessible 时,您正在模型中使用 attr_accessor。这是这个错误的第二个问题,我想知道人们从哪里得到 attr_accessor。您在学习教程吗?

关于ruby-on-rails - 在 ruby​​ 对象上调用 .save 只为所有字符串传递 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9672033/

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