Ruby on rails 在何处存储不使用';不属于模型或控制器?
我有一些实用方法,它们还不属于某个类或模型 哪里是保存此代码的好地方?我如何从一个模型中调用它Ruby on rails 在何处存储不使用';不属于模型或控制器?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一些实用方法,它们还不属于某个类或模型 哪里是保存此代码的好地方?我如何从一个模型中调用它 def get_api Clickatell::API.authenticate(ENV['AP_ID'], ENV['PASSWORD']) end def send_sms(from, message) begin api = get_api api.send_message(from, message) rescue Exception => exc logger.er
def get_api
Clickatell::API.authenticate(ENV['AP_ID'], ENV['PASSWORD'])
end
def send_sms(from, message)
begin
api = get_api
api.send_message(from, message)
rescue Exception => exc
logger.error(message + " " + "Message for the log file #{exc.message}")
render :text => "#{exc.message}", :status => 200
end
end
把它放到一个类中,把这个类放到/lib文件夹中。然后,您可以将其添加到自动加载路径,如下所示:
config.autoload_paths += %W(#{config.root}/lib)
或者只是在需要的地方要求它
如果您包装的功能非常类似于模型(是业务逻辑的一部分),那么另一种方法也可以是编写模型。模型不一定必须与数据库表相关。(尽管我会使用/models下面的子文件夹来实现这些功能)
这适用于跑步时添加的简单小东西。如果您有更大的东西要添加,那么可能可以选择插件或引擎。将其放入类中,将该类放入/lib文件夹中。然后,您可以将其添加到自动加载路径,如下所示:
config.autoload_paths += %W(#{config.root}/lib)
或者只是在需要的地方要求它
如果您包装的功能非常类似于模型(是业务逻辑的一部分),那么另一种方法也可以是编写模型。模型不一定必须与数据库表相关。(尽管我会使用/models下面的子文件夹来实现这些功能)
这适用于跑步时添加的简单小东西。如果您有更大的东西要添加,那么可能可以选择插件或引擎。您可以在“lib”目录或lib的子目录下实现该模块 在application.rb中,如果将自动加载路径修改为:
config.autoload_paths += Dir["#{config.root}/lib/**/"]
它将自动加载
如果不想更改配置,可以要求在模型文件的开头添加该文件
require "relative_path_under_lib"
您可以在“lib”目录或lib的子目录下实现该模块 在application.rb中,如果将自动加载路径修改为:
config.autoload_paths += Dir["#{config.root}/lib/**/"]
它将自动加载
如果不想更改配置,可以要求在模型文件的开头添加该文件
require "relative_path_under_lib"