use*_*136 7 ruby-on-rails header
在我的rails应用程序中,我目前有一大堆用户,每个用户都有一个注册用户ID.
如果我进入我的用户索引并单击用户显示页面,我会得到以下示例标题.
本地主机:3000 /用户/ 3
现在我不喜欢这个,因为它很容易让人们跳过标题中的用户.
我将如何进行以下操作,以便它显示user.username字段,例如
本地主机:3000 /用户/ adamwest
您可以to_param
在User模型上定义方法.
class User
...
def to_param
name
end
...
end
Run Code Online (Sandbox Code Playgroud)
然后,每个生成的URL将具有name
而不是id
用户标识符.
sid = User.new :name => 'sid'
user_path(sid) #=> "/users/sid"
Run Code Online (Sandbox Code Playgroud)
当然,在控制器中,您必须按名称查找用户.
class UsersController
...
def show
@user = User.find_by_name(params[:id])
end
...
end
Run Code Online (Sandbox Code Playgroud)
我还建议你看看friendly_id gem.
FriendlyId是ActiveRecord的段塞和永久插件的"瑞士军队推土机".它允许您创建漂亮的URL并使用人性化的字符串,就像它们是ActiveRecord模型的数字ID一样.
归档时间: |
|
查看次数: |
2921 次 |
最近记录: |