现在,我的网址正在呈现为
/users/2/products
我知道我可以使用friendly_id将其渲染为
/users/username/products
但我不想那样。在我的数据库User
中,有一个字段role
,其条目包括 - worker
,janitor
等。所以,我想要
/users/2/products
作为
/worker/username/products or /janitor/username/products and so on..
我该怎么做?我可以使用friendly_id来做吗?
答案 0 :(得分:5)
我不知道friendly_id
。我甚至无法确定你在问什么,但有些东西告诉我你要定义一条自定义路线。
,您可以添加
match "/worker/:username/products" => "users#show"
并在操作中检查:username
参数变量。
if params[:username]
@user = User.find_by_name(params[:username])
else
@user = User.find(params[:id])
end
在你的情况下,你似乎想在你的route.rb中找到它:
match "/:role/:username/products" => "users#show"
这是你使用params的行动:
User.where("role = '?' and username = '?', pararms[:role], params[:username])
此路线将使/worker/fotanus/products/
和User#show
访问params[:role] = 'worker'
之类的网址。