我想知道是否可以通过查询字符串将请求路由到特定的控制器。通过轨道3中的查询字符串进行路由?
例如。如果请求包含查询字符串“q = hello”,那么它将被发送到特定的控制器。
如果它包含“search = hello”,那么它将被发送到另一个控制器。
这是可能的吗?
谢谢!
我想知道是否可以通过查询字符串将请求路由到特定的控制器。通过轨道3中的查询字符串进行路由?
例如。如果请求包含查询字符串“q = hello”,那么它将被发送到特定的控制器。
如果它包含“search = hello”,那么它将被发送到另一个控制器。
这是可能的吗?
谢谢!
这是一种奇怪的做事方式,但这可能有些帮助。
假设你有一个路线,像这样:?
map.connect ':controller/:action/:id'
然后/人/编辑/ 1性别=男性会路线的人控制器上的编辑操作,而params [:ID]将1和params [:gender]将是“男性”。
所以要回答你的具体问题,据我所知,不,你不能这样做。但是要做你说的话不会很RESTful,如果你关心的话,你需要的任何功能都可以用其他路线更容易地完成。
例如,您可以在控制器中执行q和搜索操作。通过上面的路线,你的例子是/ people/q/hello和/ people/search/hello。
或者你可以有这样的路线:
map.connect ':controller/:action'
然后/人/指数Q =打招呼和/人/索引搜索=你好,可以在代码中通过if语句过滤的资格吗? PARAMS []。
重申:没有(据我所知),但你不应该这样做。
这是以防万一有人解reachs这里,而搜索:
到底为什么你要这么做?这可能是你的控制器/模型结构需要重构的一个指标。 – 2010-07-22 02:10:31