我有一个注册并登录的用户。
现在他们的路线是rails标准的“user/3”。
用户属于一个组织。一个组织有很多用户。
我希望该组织的所有用户在登录时都拥有 URL http://mysite.com/:organization名称。
我将如何做到这一点?
我有一个注册并登录的用户。
现在他们的路线是rails标准的“user/3”。
用户属于一个组织。一个组织有很多用户。
我希望该组织的所有用户在登录时都拥有 URL http://mysite.com/:organization名称。
我将如何做到这一点?
我不确定您的身份验证是如何设置的,或者您使用什么来处理您的身份验证,但大概当用户成功登录时,您只需更改登录操作中的重定向。就像是:
redirect_to user.organization
代替redirect_to user
您需要浏览嵌套资源。请查看http://guides.rubyonrails.org/routing.html#nested-resources
更新:更合适的答案
我认为这更适合您的场景http://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Scoping.html#method-i-scope
你必须做这样的事情......
首先向您的组织模型添加一个方法以在 url 中显示名称而不是 id
def to_param
name
end
并根据需要更新您的路线,以及向该组织的用户显示的功能
组织控制者..
def show
@organization = Organization.find(params[:organization])
@users = @organization.users
end
登录后将用户重定向到用户组织显示路径。