【问题标题】:Rails unique routing namesRails 唯一的路由名称
【发布时间】:2012-04-24 16:58:55
【问题描述】:

我正忙于一个涉及许多子域和不同级别身份验证的项目,我想根据您的访问权限更改 URL 的外观,我们有可以访问所有的超级用户(仅限程序员),然后是几个不同的管理权限。每个人都可以根据他们处理的内容访问不同的东西,门户管理员可以访问名为 data_report 的功能,只有他和超级用户才能获得访问权限,它的路由方式仅供超级用户访问,因此 URL 显示 @987654321 @ 21 是门户管理员来自的帐户,但他不需要看到这一点,因为他无法访问任何其他帐户,作为超级用户可以并且愿意,有没有办法在那个 URL 中隐藏 21并且仍然将它传递到同一个地方。所以超级用户可以看到帐号,如果是portal_administrator,那么他不会??

我的路线如下所示:

map.resources :portal_data, :only => [:show, :create]
map.show_account_portal_datum '/portal_data/:id/account/:account_id/', :controller => 'portal_data', :action => 'show_account'

它引用的控制器有一个方法

def show_account
  @account = @portal.accounts.find(params[:account_id])
end

对不起,如果这是一个简单的问题,这是我第一次处理路线。

【问题讨论】:

  • 我不认为这是一个正常的要求...

标签: ruby-on-rails url routing controllers


【解决方案1】:

我认为在这种情况下,门户管理员也不需要索引页面。如果当前登录的用户是门户管理员,那么仅在 index 操作中检查这一点并呈现(不重定向)与 show 操作相同的视图怎么样?

只是一个快速的想法,不知道它是否符合您的需求。

【讨论】:

  • 我也是这么想的,但它不是很枯燥,因为它的代码完全相同,而且它已经是一个单一的程序。我要找的是火柴之类的东西吗?例如:match 'show_account' => 'portal_data' ...只需要某种方式将其与超级用户分开...嗯,谢谢,我正在头脑风暴,哈哈
  • 嗯,jep,这不会完全干燥,但是您可以将一种方法用于逻辑,而将这两种操作仅用作网关我认为...我不知道匹配路由的任何方法就像你的例子一样,对不起。
  • 它很酷,我尝试的唯一原因是因为我无意中听到我们的一位高级开发人员谈论通过这样做来解决与此类似的问题.. 我去向他寻求帮助。感谢您的建议:D
猜你喜欢
  • 2016-05-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-27
  • 2015-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多