如何在ActiveRecord模型的属性中存储数组?

pet*_*hka 4 mysql sql activerecord many-to-many ruby-on-rails

我有waypoint两个属性的模型

  1. 坐标
  2. geocode_text

并且模型route只不过是带有一些额外文本信息的航路点的排序数组.有些路线可以有相同的航点,所以我想将航路点与路线分开.

在路线内存储航路点的最佳方法是什么?

我看到几种方式:

  • 序列化路标点ids waypoint_ids属性route,但在这种情况下,我将无法在一个SQL请求中获取路由和所有路点,因为路标ID将隐藏在序列化字符串中.
  • 创建一些具有此类参数的第三个模型

    1. ROUTE_ID
    2. waypoint_id
    3. 位置

    在路径position属性中将路线和航路点与路线点的多对多关联和存储位置连接起来.但它似乎过于复杂.

在这种情况下,对我来说最好的方法是什么?

And*_*dyV 6

我会选择第二个选项 - 使用一个类似acts_as_list的连接表(RouteWaypoints),以便您可以检索Route并正确排序所有Waypoint.这不是矫枉过正 - 数据库真的很擅长这个东西.