如何将类保存为ROR模型中的一个属性

时间:2015-06-28 07:56:24

标签: ruby-on-rails ruby

我正在尝试在名为chat的rails中创建一个模型,其中我有两列user1和user2,我想将用户对象存储在这些中。在grails中,我这样做只是为了

class Chat {
  User user1
  User user2
  Date chatStartedOn
}     

我完成了。我对rails

做了一些相同的事情
rails generate model Chat user1:User user2:User chatStartedOn:date                    

但我运行db:migrate它显示错误

undefined method `User' for #<ActiveRecord::ConnectionAdapters::TableDefinition

我的用户迁移文件

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :username 
      t.string :email
      t.string :encrypted_password 
      t.string :salt
      t.timestamps
    end
  end 
end

请指导我如何在聊天表中保存用户的对象。

1 个答案:

答案 0 :(得分:0)

试试这个

rails generate migration CreateChats

然后,您可以在聊天迁移文件中添加此代码

class CreateChats < ActiveRecord::Migration
  def change
    create_table :chats do |t|
      t.integer :user1_id,  :references => [:users, :id]
      t.integer :user2_id,  :references => [:users, :id]
      t.date :chatStartedOn
      t.timestamps
    end
  end
end

然后你需要添加关联

模型user.rb

has_one :chat

模型chat.rb

belongs_to :user1, :class_name => "User"

belongs_to :user2, :class_name => "User"