使用Rails获取SEO友好的URL而不使用method_missing?

时间:2010-06-15 19:09:41

标签: ruby-on-rails seo method-missing

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

/生/ BobSmith

和NOT / students / show / 342

有没有比method_missing更清晰的解决方案?

谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

路径的各个部分可供params[:path]数组中的控制器使用。

答案 1 :(得分:0)

您可以非常轻松地为该特定格式定义路线。

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

然后在你的节目动作中你可以使用params [:name]找到名字。