ruby 铁路路线有时得到一个错误找不到

f0brbegy  于 2023-11-18  发布在  Ruby
关注(0)|答案(2)|浏览(257)

我的Rails路由有时会出现未找到错误,并在几秒钟后自行解决。

undefined local variable or method owner_root_path' for #<Owner::SessionsController:0x00007f30408d46f0>
/myapp/app/controllers/owner/sessions_controller.rb:30:increate’
/ruby/2.5.0/gems/actionpack-5.1.6.2/lib/action_controller/metal/basic_implicit_render.rb:4:in send_action'
/ruby/2.5.0/gems/actionpack-5.1.6.2/lib/abstract_controller/base.rb:186:inprocess_action’

字符串
我的路由配置

# routes/owner.rb
Rails.application.routes.draw do
  constraints subdomain: /^owner/ do
    root to: "owner/top_pages#show", as: :owner_root
    ...
  end
end

# application.rb

config.paths["config/routes.rb"] = %w(
  config/routes/owner.rb
  config/routes.rb
).map {|relative_path| Rails.root.join(relative_path)}


有人知道为什么会这样吗?

ru9i0ody

ru9i0ody1#

Rails 6.1指南介绍了draw宏,它可以用来将一个大的路由文件拆分为多个小文件。
我不知道你的Rails版本是否支持这个宏。如果不支持,那么你可以很容易地自己定义一个draw方法,使用源代码。它将是这样的:

def draw(routes_name)
    instance_eval(File.read(Rails.root.join("config/routes/#{routes_name}.rb")))
  end

字符串
P.S:你一定要看看引入这个方法/宏的the commit

yfjy0ee7

yfjy0ee72#

我已经解决了我的问题。因为我在我的应用程序上重新加载路由命令时,我添加了一个有效的动态路由,所以有时当应用程序重新加载路由时,它会得到错误。感谢您的支持。

相关问题