活动记录对象字段在DB中保存为空

时间:2011-10-15 00:54:23

标签: ruby-on-rails ruby activerecord save

我创建了扩展ActiveRecord的Class“ClassA”。我在db:migrate中添加了字段“text”。在我的控制器中,我打电话给:

class_a_instance = ClassA.new(:text => "bite me")
puts class_a_instance.text
class_a_instance.inspect
class_a_instance.save

前两行很好。使用文本“咬我”创建新类a。 puts命令有效。但是,在调用inspect时,文本字段将打印为null。保存操作也会将文本字段作为null提交到数据库。 class_a_instance被定义为另一个类(ClassUser)内的局部变量。

class_a的Schema.rb

   ActiveRecord::Schema.define(:version => 20111013231426) do
   create_table "class_as", :force => true do |t|
     t.string   "text"
     t.datetime "created_at"
     t.datetime "updated_at"
     t.integer  "num_users"
     t.integer  "num_events"
     t.integer  "num_events_completed"
   end

使用MySQL2驱动程序。 Ruby 1.9。 Rails 3.1。我只学习了3周的rails,所以bug可能非常简单。 (以前是java程序员)

谢谢!

1 个答案:

答案 0 :(得分:0)

  

class_a_instance被定义为另一个类(ClassUser)中的局部变量

等等你想说ClassUser has_one还是has_many ClassA?

我认为你需要一种关系。首先,在class_as的模式中添加class_user_id整数,然后将关系放在类中:

ClassUser中的

has_onehas_many

ClassA中的

belongs_to ClassUser

有很多资源可以提供帮助,google为“rails relations tutorial”