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

时间:2010-09-07 08:51:41

标签: ruby-on-rails ruby redirect render

假设我们有以下几页 夹/显示/ 111 图像/显示/ 222 声音/显示/ 333 其中111,222和333是不同贡献的ID

我开发了一个名为“show”的新控制器,它将检测ID并重定向到正确的控制器 show / show / 111将重定向到clip / show / 111,依此类推

我想要的是渲染页面剪辑/ show / 111而不重定向,这意味着浏览器上的URL仍将显示“show / show / 111”,但实际上呈现“clip / show / 111”

我怎么能这样做?

谢谢大家 Wa'el

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:0)

听起来你真正要做的就是为你的一些路线制作别名,这样你就可以从不同的URL结构中访问相同的功能。如果是这种情况,创建一个将其所有工作委托给另一个控制器的整个控制器将是代码气味(功能羡慕)。

你可能想要做的是为“show /”定义一些额外的路由,它们只是重复使用相同的Clip控制器。这可以通过简单地执行以下操作来完成:

# routes.rb
# ...
# For Rails 2
map.resources "show", :controller => "clip"

# For Rails 3
resources "show", :controller => "clip"