如何使用Ruby on Rails实现基于名称而非ID的重定向功能?

更新于
2026-10-10 00:08:35
0阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1225个文字,预计阅读时间需要5分钟。

如何使用Ruby on Rails实现基于名称而非ID的重定向功能?

在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分钟。

如何使用Ruby on Rails实现基于名称而非ID的重定向功能?

在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`实例。

阅读全文