В вашем приложении звучит так, что у ваших пользователей может быть много задач, а у ваших задач может быть много пользователей.В этом случае есть две опции
has_and_belongs_to_many
конфигурация - полная модель, которая объединяет эти две модели вместе
В обоих случаях будетбыть таблицей, которая присоединяется к ним, однако, это зависит от того, нужна ли вам функциональность модели между ними или нет.
Я предлагаю начать с # 1, и вам нужно будет прочитать о ассоциации для реализации любого из вариантов.
Пример:
Предполагая, что у вас есть как модель Users, так и модель Tasks, вы бы создали отношение has_and_belongs_to_many
(HABTM) следующим образом:
$ rails g migration CreateUsersTasksJoinTable
Создает файл миграции с именем, аналогичным приведенному ниже.Обновите этот файл соответствующим образом:
# db/migrate/201806XXXXXXXX_create_users_tasks_join_table.rb
class CreateUsersTasksJoinTable < ActiveRecord::Migration[5.1]
def change
create_join_table :users, :tasks
end
end
Как только вы создадите таблицу соединений, вам необходимо обновить ваши модели User
и Task
как таковые:
# app/models/user.rb
class User < ApplicationRecord
has_and_belongs_to_many :tasks
end
# app/models/task.rb
class Task < ApplicationRecord
has_and_belongs_to_many :user
end