Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails模型中的邻近位置_Ruby On Rails_Ruby_Location_Associations - Fatal编程技术网

Ruby on rails Rails模型中的邻近位置

Ruby on rails Rails模型中的邻近位置,ruby-on-rails,ruby,location,associations,Ruby On Rails,Ruby,Location,Associations,我有一个称为Location的模型,它基本上是一个城市(或大城市中的郊区) 每个地方都有一个相邻地方的简短列表-这有助于搜索 我在这里读过几十篇关于自我参照的帖子,很多是通过联想等,但我还是很难弄清楚这一点 基本上,我想要的是: l = Locality.find(1) n = l.nearby_localities # n should now hold a list of Locality ids 最好的方法是什么?您如何确定附近的位置 实际上,你可以用一个简单的方法 class Loca

我有一个称为Location的模型,它基本上是一个城市(或大城市中的郊区)

每个地方都有一个相邻地方的简短列表-这有助于搜索

我在这里读过几十篇关于自我参照的帖子,很多是通过联想等,但我还是很难弄清楚这一点

基本上,我想要的是:

l = Locality.find(1)
n = l.nearby_localities
# n should now hold a list of Locality ids

最好的方法是什么?

您如何确定附近的位置

实际上,你可以用一个简单的方法

class Localities < ActiveRecord::Base

  # Previous Code ...

  def nearby_localities
    # Implementation here.
  end

end
类位置

保持简单

邻近的_localities
是一个静态的、经过精心编译的本地ID列表。考虑到您的答案,以及我对Ruby/Rails的新认识,我的直觉是在一列中保存一个逗号分隔的ID列表,然后使用该方法检索并将其解析为一个其他位置的数组。听起来合理吗?@CalebFidecaro:你想查询附近的位置吗?如果是这样,用逗号分隔的列表是个坏主意。您最好将位置之间的关系存储在一个单独的数据库表中。是的,这样就行了。可以将本地ID序列化为数组。请记住,列的类型应为
text
。有关更多信息,请查看:@Mischa
nearear\u localities
字段包含一个位置ID数组-这些ID在任何方面都不是动态的,它们实际上是一个手工构建的位置列表,根据本地知识,这些位置可以被视为“附近”。例如,一个地方可能在地理位置上与另一个地方很近,但却在港口对面,这使得它不是我想要的“附近”。@BenjaminTan非常感谢这一点-这比我设计的解决方案要简单得多。本文解释了如何实现自参考多对多: