所以我发现了很多关于这些主题的帖子,但没有一个回答我(可能是非常新手)的问题。这个月我是Rails的新手,但我已经用OOL编程一段时间了。我想我的问题可能涉及Ruby on Rails的多个主题。我不介意阅读多个博客或教程来解决这一切。
我有4个定位模型。每个都有一个";名称";属性
- 国家/地区(has_many:states)
- 州(belongs_to:country has_many:countrieshas_many:cities,:through=>:countries)
- 县(belongs_to:州has_many:市)
- 城市
我的最终目标是为城市、县、州创建一个自动完成的文本框。用户将选择一个国家/地区来缩小结果范围。例如,用户将键入";SA";自动完成文本框将显示:
- 堪萨斯州
- 阿肯色州
- 加利福尼亚州圣克拉拉县
- 加利福尼亚州圣克拉拉县圣何塞
- 等等
这样我就可以很容易地返回我想要显示的文本。每个型号都有类似的东西:
def location_name
//此模型的显示名称。例如,我们希望郡模型返回";加利福尼亚州圣克拉拉县;
"{name}、#{state.name}";
结束
我试图研究的解决方案:
-
活动记录查询接口在多个表中生成一个select语句。我的目标是在多个模型中搜索,得到一个包含搜索文本的名称的对象列表。
-
STI-也许可以创建一个所有人都可以继承的Location模型,但我在网上找不到任何包含每个模型不同属性的基本教程。我";生成";一个包含所有5个字段的模型,然后从自动生成的.rb文件中删除它们?我想我将能够使用Location.where("name like?and country_id=?",params[:search],params]:country_id]),并获得符合搜索参数的所有位置的完整列表。
-
MTI-我之所以研究这个问题,是因为我不太喜欢DB中大部分为空的多余列。例如:country_id只能由各州使用。因此,它对所有的县和市等来说都是无效的。但所有的教程似乎都暗示STI将是更好的方法。
-
多态关联-我几个小时前才开始研究这个问题。我发现了一些关于":多态性=>真";我读了另一篇关于子类特性的文章。
我花了好几天时间研究";右";鲁比说这是怎么回事。我真的很想学习并融入ruby所能提供的一切。谢谢你的想法!
也许您也可以观看此视频以进行进一步的开发。
http://railscasts.com/episodes/88-dynamic-select-menus
我想你的案子一对多应该没问题。。就像这个国家有很多州,相应的州有很多城市。
如果我错了,请纠正我@@