gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 00:57:21 26 4
gpt4 key购买 nike

目前在我的应用程序中,我有项目和用户的概念。现在我想为这些实现一个帐户范围,以便项目和用户都属于一个帐户,而不是特别属于某个帐户。通过这样做,我想像这样确定我的路线:

 scope ":account_id" do
resources :projects
...
end

但是,通过实现路由 scope使用命名参数会改变路由助手的执行方式,以便 project_path路由助手现在需要两个参数,一个用于 account_id id 的参数和一个参数,使它像这样:
  project_path(current_account, project)

这个小小的 scope更改要求我在使用这些路径助手的 Controller 和 View 中对应用程序进行大量更改。

当然,当然,当然,有一种干净的方法可以做到这一点,而无需更改应用程序中的每个路由助手?

最佳答案

使用 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 作为散列参数传递给路由来在 View 中覆盖它:
project_path(project, :account_id => other_account)

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

关于ruby-on-rails - 实现帐户范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4613996/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com