gpt4 book ai didi

ruby-on-rails - Rails 如何找到模型和 Controller ?我怎样才能让它加载更多模型?

转载 作者:数据小太阳 更新时间:2023-10-29 07:40:27 24 4
gpt4 key购买 nike

我正在尝试在 app/models/gamestate.rb 中创建一个非 ActiveRecord 模型。然后在我的 Controller (PlayController) 中,我应该能够执行 GameState.new,对吗?不去:

NameError (uninitialized constant PlayController::GameState):
app/controllers/play_controller.rb:23:in `play'

(至少在开发环境中)

但是!如果我确实有一个名为 app/models/play.rb 的模型,那么它会自动加载,我可以执行 Play.new

所以我的问题是:Rails 如何知道要加载哪些类?从 play#actionPlayControllerapp/controllers/play_controller.rbapp 做了什么样的名称修改/models/play.rb?

它看起来非常脆弱,但更好地理解它是如何工作的可能会有所帮助。

最后,我怎样才能让它加载 app/models/gamestate.rb

最佳答案

Heikki 是对的,但没有解释为什么会这样。 Rails 将 app 中的每个文件夹添加到 autoload_path 配置设置中。当请求未知常量时,Rails 将在该路径中查找该常量,如果找不到文件名——例如 gamestate.rb 与正确的 game_state.rb -- 那么它将无法加载此文件中定义的常量。

关于ruby-on-rails - Rails 如何找到模型和 Controller ?我怎样才能让它加载更多模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4533384/

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