在我的 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/