ruby-on-rails - 在网址栏中隐藏用户 ID

标签 ruby-on-rails header

在我的 rails 应用程序中,我目前有大量用户,每个用户都有一个注册用户 ID。

如果我进入我的用户索引并单击用户显示页面,我会得到以下示例标题。

本地主机:3000/用户/3

现在我不喜欢这个,因为它很容易让人们跳过标题中的用户。

我将如何进行以下操作,以便它显示 user.username 字段,而不是例如

本地主机:3000/用户/adamwest

最佳答案

您可以定义一个 to_param用户模型上的方法。

class User
  ...
  def to_param
    name
  end
  ...
end

那么每个生成的 URL 都会有 name而不是 id作为用户标识符。
sid = User.new :name => 'sid'
user_path(sid) #=> "/users/sid"

当然,在 Controller 中,您必须按名称查找用户。
class UsersController
  ...
  def show
    @user = User.find_by_name(params[:id])
  end
  ...
end

我也建议你看看friendly_id gem 。

FriendlyId is the “Swiss Army bulldozer” of slugging and permalink plugins for ActiveRecord. It allows you to create pretty URL’s and work with human-friendly strings as if they were numeric ids for ActiveRecord models.

关于ruby-on-rails - 在网址栏中隐藏用户 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9623017/

相关文章:

header - Twitter Bootstrap : Fixed header and right sidebar

c++ - 如何在 C++ 中声明外部类指针?

ruby-on-rails - belongs_to关联在实例化时发生冲突, "Validation failed... must exist"错误

ruby-on-rails - 我想使用Rails建立聊天室,我应该使用剑圣2还是抽筋?

ruby-on-rails - 如果票证存在 ruby ,如何检查数据库?

Python:将一个大文本文件分割为多个标题

php - 从 PHP 中的 URL 重定向

java - 如何使用 selenium 和 java 将应用程序的所有页面类的页眉、页脚等可重复部分添加到页面对象模型?

ruby-on-rails - Chartkick 在 localhost 上工作,但在 heroku 上显示 "loading"

ruby-on-rails - Rails Controller 中的 Process.fork