0

我有一个注册并登录的用户。

现在他们的路线是rails标准的“user/3”。

用户属于一个组织。一个组织有很多用户。

我希望该组织的所有用户在登录时都拥有 URL http://mysite.com/:organization名称。

我将如何做到这一点?

4

3 回答 3

1

我不确定您的身份验证是如何设置的,或者您使用什么来处理您的身份验证,但大概当用户成功登录时,您只需更改登录操作中的重定向。就像是:

redirect_to user.organization

代替redirect_to user

于 2013-02-01T04:51:03.490 回答
1

您需要浏览嵌套资源。请查看http://guides.rubyonrails.org/routing.html#nested-resources

更新:更合适的答案

我认为这更适合您的场景http://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Scoping.html#method-i-scope

于 2013-02-01T04:58:32.790 回答
0

你必须做这样的事情......

首先向您的组织模型添加一个方法以在 url 中显示名称而不是 id

def to_param
    name
end

并根据需要更新您的路线,以及向该组织的用户显示的功能

组织控制者..

def show
  @organization = Organization.find(params[:organization])
  @users = @organization.users
end

登录后将用户重定向到用户组织显示路径。

于 2013-02-01T05:19:23.487 回答