ActiveRecord:同一个表的多个外键

时间:2012-10-22 20:24:57

标签: ruby-on-rails activerecord

所以我在如何在Rails 3中构建一些数据方面苦苦挣扎。

我有一个名为Tasks的表和一个名为Todos的表。 Todo最多可以有4个任务,就像这样组织到表中:

Todos表:

  • ID
  • todoname
  • slot1中
  • slot2中
  • slot3中
  • 时隙4

任务表:

  • ID
  • 名称
  • 描述
  • BUTTON_TEXT
  • button_url

在Todos表中,slot1到slot4将具有相关任务的ID。我不确定如何构建模型中的关联。

简单的旧has_many :tasksbelongs_to :todos不太有用。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我会这样做

class Todo < ActiveRecord::Base
  has_many :tasks, :limit => 4
end

class Task < ActiveRecord::Base
  belongs_to :todo
end


resources :todos do
  resources :tasks
end

要获得@todo的4项任务,您可以执行@todo.tasks

答案 1 :(得分:0)

class Todo < ActiveRecord::Base
  has_many :tasks through :slots, :limit=>4
end
class Slot < ActiveRecord::Base
  belongs_to :todos
  belongs_to :tasks
end