【问题标题】:Rails STI Association and nested resourcesRails STI 协会和嵌套资源
【发布时间】:2011-05-10 19:55:47
【问题描述】:

好的,所以我这里有一个奇怪的模式,我无法弄清楚。

我有一个以 CallList 作为基本模型的 STI 集,并且继承了 City & State。一个城市属于一个州(一个州有很多城市)。

一个广告系列有很多通话清单,所以我想全部显示。我遍历campaign.call_lists,有时会得到Cities,有时会得到States。当我想链接到他们时,我会这样做

link_to call_list.name, call_list

如果我有这些路线,效果很好:

resources :cities, :states

但是,当我在州内嵌套城市时,link_to 助手无法找出合适的路线。有没有一种简单的方法可以做到这一点,还是我必须手动构建路径助手?

【问题讨论】:

  • 当您说“在州内筑巢城市”时,您的意思是在您的路线中,对吗?我假设关联已经正确设置?
  • 是的,关联工作得很好,而且我的路线是嵌套的。所以如果我的 call_list 是一个州,我可以只链接到州,但如果它是一个城市,我需要做 state_city_path(city) 而不仅仅是 city_path(city)。我可以在视图中添加一个 case 语句,但这很难看,我想知道 rails 中是否有一些东西或插件可以从路由中解决它?
  • 你需要检查 call_list 的种类,然后使用正确的路由..它不能直接作为路由嵌套..

标签: ruby-on-rails routing nested single-table-inheritance


【解决方案1】:

您需要检查 call_list 的种类,然后使用正确的路由..它不能直接作为路由嵌套..

link_to call_list.name, call_list.is_a?(City) ? call_list : state_city_path(call_list)

【讨论】:

    猜你喜欢
    • 2012-02-02
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    相关资源
    最近更新 更多