【发布时间】:2021-06-03 07:48:22
【问题描述】:
如果我有一个在特定位置查找控制器操作的路由,例如:
things_path GET /things some/things#index
我可以通过以下任一方式满足这条路径:
# app/controllers/some/things_controller.rb
class Some::ThingsController
def index
# do stuff
end
end
# app/controllers/some/things_controller.rb
module Some
class ThingsController
def index
# do stuff
end
end
end
但不是:
# app/controllers/some/things_controller.rb
class ThingsController
def index
# do stuff
end
end
我不明白为什么,或者module这个词的含义...
在我的脑海中,路由想在some 目录中找到things_controller.rb(在自动加载的路径上,[我已指定app/controllers])。
为什么 rails 需要我的文件内容来指定/匹配位置?
如果module Some 与Some:: 具有相同的效果,这意味着模块在这里/正在做什么?它真的是一个模块...还是一个命名空间?!
谢谢!
【问题讨论】:
标签: ruby-on-rails ruby class module routes