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

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 实现帐户范围前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
目前在我的应用程序中,我有项目和用户的概念.现在我想为这些实现一个帐户范围,以便项目和用户都属于一个帐户,而不是特别是没有.通过这样做,我想像这样我的路线:
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)

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

猜你在找的Ruby相关文章