В вашей миграции вам понадобится следующее:
class CreateTasks < ActiveRecord::Migration
def change
create_table :tasks do |t|
t.references :creator
t.references :responsible
t.timestamps
end
add_index :tasks, :creator_id
add_index :tasks, :responsible_id
end
end
Это было сгенерировано: rails g model task creator:references responsible:references
В вашей базе данных это создаст таблицу tasks
с двумя столбцами: creator_id
и responsible_id
.По умолчанию Rails считает, что эти столбцы ссылаются на две модели ActiveRecord Creator
и Responsible
.Однако, поскольку вы хотите, чтобы они ссылались на вашу User
модель, вам необходимо добавить к вашей Task
модели следующее:
In app/models/tasks.rb
class Tasks < ActiveRecord::Base
belongs_to :creator, :class_name => 'User'
belongs_to :responsible, :class_name => 'User'
end
Это будетскажите Rails использовать модель User
для этих отношений.Поэтому, когда вы сделаете что-то вроде task.creator
, вы получите модель User
, и то же самое для task.responsible
.