0

在 library 文件夹中创建了一个 games_account.rb 文件。下面是结构

module GamesAccounts
    class GamesAccountsClient
.
.
.
.
.
end
 end

尝试在控制器中执行 GamesAccounts::GamesAccountsClient.new 会给我错误

uninitialized constant GamesController::GamesAccounts

我什至添加了

config.autoload_paths += %W(#{config.root}/lib) in the applications.rb

我在这里做错什么了吗?

4

3 回答 3

1

我不确定这一点,但我认为你可能需要把它放进去lib/games_accounts/games_accounts_client.rb而不是你现在拥有的东西,我猜是lib/games_account.rb. 这个想法是应该的lib/<module name>/<class name>.rb

于 2013-03-04T22:04:27.633 回答
0

我有另一个想法,如果你的文件对模型有帮助,而不是尝试以关注文件夹的形式保存它并在那里添加你的文件。从 Rails 4 开始,所有这些支持活动都将受到关注,最好立即采用。也可以阅读 DHH 的博客文章:

http://37signals.com/svn/posts/3372-put-chubby-models-on-a-diet-with-concerns

于 2013-03-04T22:20:30.163 回答
0

问题出在您的文件中,将其命名为games_accounts.rb而不是games_account.rb,它应该可以工作(因为它将与模块​​名称匹配)。

如果您打算在此模块中放置许多类,请创建一个名为 games_accounts 的目录,并在其中添加该类以及每个文件到每个类的映射,并将其放在您的application.rb文件中,例如

config.autoload_paths += %W(#{config.root}/lib/games_accounts)
于 2013-03-04T22:17:30.007 回答