在我的Rails应用程序中,我目前有大量的用户,每个用户都有一个注册的用户ID。
如果进入用户索引并单击用户显示页面,则会得到以下示例标题。
本地主机:3000 / users / 3
现在,我不喜欢这样,因为它很容易使人们跳过标题中的用户。
我将如何执行以下操作,以使其显示user.username字段,例如
本地主机:3000 / users / adamwest
最佳答案
您可以在用户模型上定义to_param
方法。
class User
...
def to_param
name
end
...
end
然后,每个生成的URL将具有
name
而不是id
作为用户标识符。sid = User.new :name => 'sid'
user_path(sid) #=> "/users/sid"
当然,在控制器中,您必须按名称查找用户。
class UsersController
...
def show
@user = User.find_by_name(params[:id])
end
...
end
我还建议您看一下friendly_id gem。
FriendlyId是拍打和固定链接的“瑞士陆军推土机”
ActiveRecord插件。它可以让您创建漂亮的网址,
使用人类友好的字符串,就好像它们是数字ID
ActiveRecord模型。
关于ruby-on-rails - 在网址栏中隐藏用户ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9623017/