0

目前,我们正在使用 method_missing 在我们的控制器中捕获对 SEO 友好操作的调用,而不是为变量的每个可能值创建操作。我们想要的是这样的 URL:

/学生/鲍勃史密斯

而不是 /students/show/342

有比 method_missing 更清洁的解决方案吗?

谢谢!

4

2 回答 2

0

您可以创建一个包罗万象的路线。将它放在config/routes.rb的底部,使用您想要的任何控制器和操作:

map.connect '*path', :controller => '...', :action => '...'

路由的段将可用于params[:path]阵列中的控制器。

于 2010-06-15T19:17:46.193 回答
0

您可以很容易地为该特定格式定义路线。

map.connect "/students/:name", :controller => :students, :action => :show, :requirements => {:name => /[A-Z][A-Z]+/}

然后在您的表演动作中,您可以使用 params[:name] 按名称查找。

于 2010-06-15T19:18:12.447 回答