Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在何处存储不使用';不属于模型或控制器?_Ruby On Rails_Ruby - Fatal编程技术网

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"