如何使用Ruby on Rails实现基于名称而非ID的重定向功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1225个文字,预计阅读时间需要5分钟。
在Rails 5.1中,若想在控制器中重定向到`show`方法并期望URL显示为`/organization/organization_name`代替`/organization/primary_key_id`,你可以通过修改路由配置来实现。以下是步骤和代码示例:
1. 打开你的Rails应用中的`config/routes.rb`文件。
2.在相应的资源路由下,使用`path`方法代替默认的`id`参数。
例如,如果你有一个`Organization`资源,你可以这样修改:
ruby
Rails.application.routes.draw do resources :organizations, path: 'organization', param: :organization_name do # 其他路由配置... endend这样设置后,你的URL将自动使用`organization_name`作为路径参数,而不是默认的ID。
然后,在你的控制器中,你可以像这样重定向:
rubydef show # 你的逻辑... redirect_to organization_path(@organization)end
确保你的`@organization`实例变量是根据`organization_name`来获取的。如果`organization_name`不是直接可用于查找记录的字段,你可能需要在控制器中添加相应的逻辑来根据`organization_name`获取`Organization`实例。
本文共计1225个文字,预计阅读时间需要5分钟。
在Rails 5.1中,若想在控制器中重定向到`show`方法并期望URL显示为`/organization/organization_name`代替`/organization/primary_key_id`,你可以通过修改路由配置来实现。以下是步骤和代码示例:
1. 打开你的Rails应用中的`config/routes.rb`文件。
2.在相应的资源路由下,使用`path`方法代替默认的`id`参数。
例如,如果你有一个`Organization`资源,你可以这样修改:
ruby
Rails.application.routes.draw do resources :organizations, path: 'organization', param: :organization_name do # 其他路由配置... endend这样设置后,你的URL将自动使用`organization_name`作为路径参数,而不是默认的ID。
然后,在你的控制器中,你可以像这样重定向:
rubydef show # 你的逻辑... redirect_to organization_path(@organization)end
确保你的`@organization`实例变量是根据`organization_name`来获取的。如果`organization_name`不是直接可用于查找记录的字段,你可能需要在控制器中添加相应的逻辑来根据`organization_name`获取`Organization`实例。

