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

标签 ruby-on-rails ruby ruby-on-rails-3.1

我在处理 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/

相关文章:

ruby-on-rails - Ruby on Rails 上的 Stripe - 创建 config/initializers/stripe.rb

ruby-on-rails - 在外键上添加索引如何工作?

ruby 非阻塞行读取

ruby-on-rails - 在 Rails 3.1 中渲染后如何执行一些任务

ruby-on-rails - 选择标签在 rails 3.1 rc4 中包含空白行为

ruby-on-rails - ruby rails : How would i stay on the same page if the post is not saved?

html - 如何在 Formtastic 中为一组单选按钮选择默认值?

ruby-on-rails - ActiveRecord::Store 的字段名取自另一个表

ruby-on-rails - Rails 3 - 为 belongs_to 模型提供 id 的正确方法

ruby-on-rails - 尝试附加带有 Active Storage 错误的文件