通过关系使用 has_many 处理订单

发布于 2024-11-07 16:03:45 字数 219 浏览 0 评论 0原文

我有两个模型:项目和任务(例如),具有连接模型:project_task 通过关系启用 has_many,以便可以在项目之间共享任务。

我已将位置指定为project_task 模型的属性。现在我希望能够通过给定的项目按 project_tasks 表中的位置访问任务。

即project.tasks(按project_tasks 表中为每个任务列出的位置排序)。

这可能吗?

I have two models: project and task (for example) with a join model: project_task enabling a has_many through relationship so that tasks may be shared across projects.

I have specified position as an attribute of the project_task model. Now I want to be able to access tasks by their position in the project_tasks table via a given project.

i.e. project.tasks (ordered by the position listed for each task in the project_tasks table).

Is this possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

猫弦 2024-11-14 16:03:45

我认为类似的事情可以帮助你:

has_many :project_tasks
has_many :tasks, :through => :project_tasks, :order => 'project_tasks.position'

I think something like that can help you:

has_many :project_tasks
has_many :tasks, :through => :project_tasks, :order => 'project_tasks.position'
孤独患者 2024-11-14 16:03:45
class Task < AR::Base
   belongs_to :project
   has_one :project_tasks,:through=>:project_tasks
end

class Project < AR::Base 
  has_many :project_tasks
  has_many :tasks ,:through=>:project_tasks,:order => 'project_tasks.position'
end

class ProjectTask < AR::Base
  belongs_to :task
  belongs_to :project
end
class Task < AR::Base
   belongs_to :project
   has_one :project_tasks,:through=>:project_tasks
end

class Project < AR::Base 
  has_many :project_tasks
  has_many :tasks ,:through=>:project_tasks,:order => 'project_tasks.position'
end

class ProjectTask < AR::Base
  belongs_to :task
  belongs_to :project
end
花落人断肠 2024-11-14 16:03:45

这就是 Rails 5.x 中对我有用的东西:

has_many :project_tasks
has_many :tasks, -> { order('project_tasks.position') }, through: :project_tasks

This is what works for me in Rails 5.x :

has_many :project_tasks
has_many :tasks, -> { order('project_tasks.position') }, through: :project_tasks
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文