Ruby on Rails,如何让控制器呈现不同的页面而不重定向?

jk9hmnmh  于 2022-11-04  发布在  Ruby
关注(0)|答案(1)|浏览(115)

假设我们有以下页面:clip/show/111 image/show/222 sound/show/333,其中111、222和333是不同贡献的ID
我开发了一个名为“show”的新控制器,它将检测ID并重定向到正确的控制器show/show/111,将重定向到clip/show/111,以此类推
我想要的是呈现页面clip/show/111而不重定向,这意味着浏览器上的URL仍然显示“show/show/111”,但实际上呈现“clip/show/111”
我怎么能那样做呢?
谢谢大家,Wael

lpwwtiir

lpwwtiir1#

听起来你真正想做的是为你的一些路由创建别名,这样你就可以从不同的URL结构访问相同的功能。如果是这样的话,创建一个完整的控制器,把它所有的工作委托给另一个控制器,这将是一种代码气味(特性嫉妒)。
你可能想要做的是为“show/”定义一些额外的路径,这些路径只是重复使用同一个Clip控制器。


# routes.rb

# ...

# For Rails 2

map.resources "show", :controller => "clip"

# For Rails 3

resources "show", :controller => "clip"

相关问题