smo*_*ter 14 ruby ruby-on-rails-3
这可能是一个愚蠢的问题,但我是Ruby on Rails的新手,我可以使用一些指导.我想有一个帮助器/实用程序类,它执行一组网络操作并返回结果.我在哪里放这个课程,我该如何使用它.
我在app/modulename/helpers目录中创建了network_helper.rb.在我尝试做的时候在我的控制器中
myNetworkHelper = ModuleName::NetworkHelper.new
results = myNetworkHelper.getResults
Run Code Online (Sandbox Code Playgroud)
我收到一个错误
undefined method `new' for MyModule::NetworkHelper:Module
Run Code Online (Sandbox Code Playgroud)
我确信这只是对铁轨上红宝石如何工作的误解.我能澄清一下吗?
将它作为一个类而不是模块并将其放入库中会更好吗?我可以在库中添加子文件夹并自动加载它们吗?
像这样的小实用程序类通常放在lib文件夹中,但有些人更喜欢创建一个名为classes的文件夹.无论您选择哪个,请确保在config/application.rb中导入该文件夹,因为lib文件夹未自动加载:
config.autoload_paths += %W(#{config.root}/lib)
Run Code Online (Sandbox Code Playgroud)
如果您希望使用可重用代码扩展某些模型而不是实用程序类,您可能还希望查看新的Rails 4关注文件夹,这些文件夹鼓励您提取可重用模块:
请参阅:如何在Rails 4中使用问题
要使用new,您调用它的东西必须是一个类,而不是一个模块。您正在使用一个模块。更改module为class在lib/utilities/network_utility.rb.
| 归档时间: |
|
| 查看次数: |
9270 次 |
| 最近记录: |