加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 实现帐户范围

发布时间:2020-12-16 19:38:20 所属栏目:百科 来源:网络整理
导读:目前在我的应用程序中,我有项目和用户的概念.现在我想为这些实现一个帐户范围,以便项目和用户都属于一个帐户,而不是特别是没有.通过这样做,我想像这样我的路线: scope ":account_id" do resources :projects ... end 但是,通过使用命名参数实现路由选择范围
目前在我的应用程序中,我有项目和用户的概念.现在我想为这些实现一个帐户范围,以便项目和用户都属于一个帐户,而不是特别是没有.通过这样做,我想像这样我的路线:
scope ":account_id" do
   resources :projects
   ...
 end

但是,通过使用命名参数实现路由选择范围,可以改变路由助手执行的方式,以便project_path路由助手现在可以使用两个参数,一个用于account_id参数,一个用于id参数,使其类似于此:

project_path(current_account,project)

这个微小的范围变化需要我在控制器和视图中使用这些路径帮助器的应用程序进行大量更改.

当然肯定的是,有一个干净的方法可以做到这一点,而不必更改应用程序中的每一个路由助手?

解决方法

使用default_url_options哈希来添加默认值:account_id:
class ApplicationController < ActionController::Base
  protect_from_forgery

  before_filter :set_default_account_id

  def set_default_account_id
    self.default_url_options[:account_id] = current_account
  end
end

然后,您可以使用url帮助器单个参数:

project_path(project)

通过将account_id作为哈希参数传递给路由,可以在视图中覆盖它:

project_path(project,:account_id => other_account)

请注意,这在控制台中不起作用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读