使用 Rails 获得 SEO 友好的 URL,而不需要 method_missing?

发布于 2024-09-05 23:16:28 字数 193 浏览 5 评论 0原文

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

/students/BobSmith

而不是 /students/show/342

有没有比 method_missing 更干净的解决方案?

谢谢你!

Currently we are using method_missing to catch for calls to SEO friendly actions in our controllers rather than creating actions for every conceivable value for a variable. What we want are URLS like this:

/students/BobSmith

and NOT /students/show/342

IS there a cleaner solution than method_missing?

Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

奈何桥上唱咆哮 2024-09-12 23:16:28

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

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

然后在您的显示操作中,您可以使用 params[:name] 按名称查找。

You can define a route for that particular format fairly easily.

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

Then in your show action you can find by name using params[:name].

鲜血染红嫁衣 2024-09-12 23:16:28

您可以创建一条包罗万象的路线。将其与您想要的任何控制器和操作一起放在 config/routes.rb 的底部:

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

路线的各个部分将在 params[:path] 数组。

You can create a catch-all route. Put this at the bottom of config/routes.rb with whatever controller and action you want:

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

The segments of the route will be available to your controller in the params[:path] array.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文