Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.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 STI关联和嵌套资源_Ruby On Rails_Routing_Nested_Single Table Inheritance - Fatal编程技术网

Ruby on rails Rails STI关联和嵌套资源

Ruby on rails Rails STI关联和嵌套资源,ruby-on-rails,routing,nested,single-table-inheritance,Ruby On Rails,Routing,Nested,Single Table Inheritance,好的,我这里有一个奇怪的模式,我想不出来 我有一个STI集合,以CallList作为基本模型,并继承了City&State。一个城市属于一个州,一个州有许多城市 一个活动有许多呼叫列表,所以我想全部显示它们。我在活动列表上循环,有时得到城市,有时得到州。当我想链接到它们时,我会这样做 link_to call_list.name, call_list 如果我有以下路线,这很好: resources :cities, :states 然而,当我在州内筑巢时,链接到助手的链接无法找到合适的路径。

好的,我这里有一个奇怪的模式,我想不出来

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

一个活动有许多呼叫列表,所以我想全部显示它们。我在活动列表上循环,有时得到城市,有时得到州。当我想链接到它们时,我会这样做

link_to call_list.name, call_list
如果我有以下路线,这很好:

resources :cities, :states

然而,当我在州内筑巢时,链接到助手的链接无法找到合适的路径。有没有一个简单的方法可以做到这一点,或者我需要做一些手动路径帮助器构造吗?

您需要检查调用列表的类型,然后使用正确的路由..不能直接使用,因为路由是嵌套的

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

您需要检查呼叫列表的类型,然后使用正确的路由。由于路由是嵌套的,所以不能直接使用

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

当你说在州内筑巢时,你指的是在你的路线上,对吗?我假设关联已经正确设置了?是的,关联工作正常,我的路由是嵌套的。所以,如果我的呼叫列表是一个州,我可以把它链接到州,但是如果它是一个城市,我需要做的是州城市路径,而不仅仅是城市路径。我可以在视图中添加一个case语句,但这很难看,我想知道rails或插件中是否有什么东西可以从路由中解决问题?你需要检查调用列表的类型,然后使用正确的路由..不能直接使用,因为路由是嵌套的..当你说在州内嵌套城市时,你的意思是在路由中,对吗?我假设关联已经正确设置了?是的,关联工作正常,我的路由是嵌套的。所以,如果我的呼叫列表是一个州,我可以把它链接到州,但是如果它是一个城市,我需要做的是州城市路径,而不仅仅是城市路径。我可以在视图中抛出case语句,但这很难看,我想知道rails或插件中是否有什么东西可以从路由中解决问题?您需要检查调用列表的类型,然后使用正确的路由..不能直接使用,因为路由是嵌套的。。