我想将我的services文件夹中的以下类包含到Controller中。
这是..services / product_service.rb中的类
class MyServices
class << self
def screen_print
"These are the words in screen print"
end
end
end
我想要做的就是在我的控制器中:
class AmazonsController < ApplicationController
def index
@joe = MyServices.screen_print
end
end
我以为我可以将它包含在控制器中。而且它不是一个模块,所以包括isn不工作,我尝试更新我的config / appliaction.rb文件,但是没有工作..
答案 0 :(得分:2)
我相信您的班级名称必须与档案名称相同。因此,由于您的文件名为List<Button> buttons = new List<Button> { button3, button4, button5......etc };
foreach (Button btn in buttons)
{
btn.ForeColor = Color.White;
}
,因此您的类应为:
product_service.rb
并在您的控制器中:
class ProductService
class << self
def screen_print
"These are the words in screen print"
end
end
end
答案 1 :(得分:1)
除了已指出的naming problems之外,Rails不会自动要求来自其不知道的文件夹中的任意文件。
如果您想要自动需要新文件夹中的文件,则需要将其添加到Rails的自动加载路径中:
# config/application.rb
config.autoload_paths << Rails.root.join('services')
有关详细信息,请参阅Auto-loading lib files in Rails 4。
答案 2 :(得分:0)
Rails不会从非常见的位置加载文件。您需要告诉Rails services
文件夹存在并从中加载文件。
将以下内容添加到config/application.rb
:
# Custom directories with classes and modules you want to be autoloadable.
config.autoload_paths += [Rails.root.join('app', 'services')]