gpt4 book ai didi

routes - 导轨 5.1+ : namespaced models and default path generators

转载 作者:行者123 更新时间:2023-12-04 17:06:48 25 4
gpt4 key购买 nike

我在我的模型上使用命名空间来组织一个大型项目。但是,当您命名模型时,Rails 中的默认 url/path 生成器在路由中使用该命名空间:

module Workflows
class Workflow < ApplicationRecord
# ...
end
end

<%= form_with model: @workflow, url: @workflow do |form| %>
# => produces URL: workflows_workflow_path(@workflow)

我看过很多关于覆盖 model_name 的 SO 帖子但它对我没有任何作用。我已经尝试了以下所有版本:
module Workflows
class Workflow < ApplicationRecord
def self.model_name
# Have tried all of the following as per various SO questions...
ActiveModel::Name.new(Workflow)
ActiveModel::Name.new(::Workflows::Workflow, nil, nil)
end
end
end

当我检查model_name时,它特别指出 route_keyworkflows_workflow ,即使 ActiveModel 名称覆盖就位。

我正在运行 Rails 5.1 和 Ruby 2.4.1。

如何强制 Rails 将这些命名空间模型视为非命名空间模型?命名空间仅适用于开发人员组织,我不需要 Rails 对命名空间“做”任何事情。

最佳答案

请试试:

module Workflows
class Workflow < ApplicationRecord
def self.model_name
ActiveModel::Name.new(self, nil, "Workflow")
end
end
end

喜欢指定 here .

关于routes - 导轨 5.1+ : namespaced models and default path generators,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48788172/

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