У меня есть простая настройка данных с моделью для пользователей и модель для задач. Между этими двумя моделями у меня есть два has_many: через ассоциации: стипендии и присвоения. В целом я хочу указать для задачи несколько последователей и нескольких правопреемников.Ruby: указать has_many: через ассоциацию, когда задано несколько has_many: через ассоциации
Теперь я хочу отобразить для конкретной задачи всех правопреемников и всех последователей. Если бы была только одна ассоциация, я просто мог бы сделать @ task.users. Поскольку у меня есть две ассоциации, я хочу указать, по какой ассоциации я хочу получить всех пользователей.
Смотрите мой код:
class User < ActiveRecord::Base
has_many :assignments
has_many :tasks, through: :assignments
has_many :fellowships
has_many :tasks, through: :fellowships
end
class Task < ActiveRecord::Base
has_many :assignments
has_many :users, through: :assignments
has_many :fellowships
has_many :users, through: :fellowships
end
class Assignment < ActiveRecord::Base
belongs_to :user
belongs_to :task
end
class Fellowship < ActiveRecord::Base
belongs_to :user
belongs_to :task
end
Давайте предположим, что у меня есть задача, как
@task = Task.first
теперь я хочу, чтобы все правопреемников и всех последователей с чем-то вроде
@assignees = @ task.users "по присваиванию ассоциации"
@ follow-line = @ task.users "над asso (
но я не знаю, как это сделать.
Спасибо за помощь!
Так что, если я добавить эти assigenment_tasks и fellowship_tasks в мои ассоциации моделей, могу ли я затем использовать '@assignees = @ task.assignment_users' и' @followers = @ task.fellowship_users'? – needgethelp
Да, это должно сработать. – rakeshp
Как насчет использования 'assignees' и' followers' вместо assign_tasks и fellowships_tasks. Таким образом, вы можете получить с помощью '@ task.followers' и' @ task.assignees'. – Anwar