Ruby on rails Rails嵌套资源,为用户提供漂亮的URL
我的应用程序的数据结构如下:Ruby on rails Rails嵌套资源,为用户提供漂亮的URL,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我的应用程序的数据结构如下: 组织有用户 组织有信息 组织有网站 我通常会使用嵌套资源以RESTful方式执行此操作: resources :organizations do resources :users resources :messages resources :sites end 这给了我如下URL: /organizations/12/messages /organizations/12/sites 当管理员需要为组织创建消息时,这些冗长的URL非常适合,因为UR
- 组织有用户
- 组织有信息
- 组织有网站
resources :organizations do
resources :users
resources :messages
resources :sites
end
这给了我如下URL:
/organizations/12/messages
/organizations/12/sites
当管理员需要为组织创建消息时,这些冗长的URL非常适合,因为URL包含组织ID
然而,我想向普通用户显示漂亮的URL,例如:
/messages
/sites
有没有办法将这些漂亮的URL别名为/organizations/{current_user.organization.id}/*?您需要一种传递组织id的方法。 例如,如果您有一个属于组织的用户,并且该用户已登录, 您可以通过当前用户获取组织id,如下所示:
class MessageController < ApplicationController
before_filter :get_organization
# ...
private
def get_organization
@organization = current_user.organization
end
end
还有其他解决方案,但这取决于您如何获取组织id。您所说的/organizations/{current_user.organization.id}是什么意思/*?你的意思是你想让你的管理员用户看到他们有很多组织,而普通用户看不到吗?@Awea:是的-我希望管理员能够为所有组织添加消息和更改站点,因此较长的URL在这种情况下很有用。为什么你不使用不同的命名空间来拆分部分中的用户逻辑和部分中的管理员逻辑?
resources :messages
resources :organizations do
resources :messages
end