保留has_many关系中的顺序或数组

时间:2011-12-24 23:07:21

标签: ruby-on-rails ruby-on-rails-3 activerecord

我有一个模型CardSet has_many :cards, :order => "cards.order"。当我更新some_card_set.cards = cards_in_a_particular_order,然后更新some_card_set.save时,我希望some_card_set.cards下次使用我输入的相同顺序的卡片返回。我怎样才能实现这一目标?

2 个答案:

答案 0 :(得分:1)

可以手动执行,也可以使用大量acts_as_ordered个插件中的一个,例如thisthis等。

答案 1 :(得分:0)

假设表格设计类似于

cards {
  id INT PRIMARY KEY,
  value VARCHAR(5),
  suite VARCHAR(10)
}

card_sets {
  id INT PRIMARY KEY,
  name VARCHAR(30),
}

然后我会有一个类似的连接表:

card_set_orders {
  card_set_id INT,
  card_id INT,
  order_index INT

}

您必须更改has has以反映连接语法。然后你可以为集合设置一个'on load'函数'order'。所以你需要:   1)新的迁移   2)新的activerecord模型   3)您可以在查找或手动调用的排序方法   4)更新了has_many