27

私の状況を説明します。

私のレールアプリケーションのファイルツリーは次のとおりです。

lib/my_module.rb

require 'my_module/my_file'

module My_module

end

lib/my_module/my_file.rb

class Tweetag::Collector
   (...)
end

config/jobs/ に配置した ruby​​ スクリプトを作成しました。

このファイルに my_file.rb ファイルを要求する方法が本当にわかりません。

require '../../my_module/my_file.rb'

それは私に「require」を与えます:そのようなファイルをロードできません

コントローラーで行う「my_module」の要求だけで同じエラーが発生します...

私に説明してくれる人はいますか?どうもありがとう

4

5 に答える 5

22

If you want to require only a specific file then, do something relative to Rails root like this

for example: --

lib/plan.rb

module Plan
 ...some code...
end

and if you want to require it only in some model, say app/models/user.rb

do in user model

require "#{Rails.root}/lib/plan"

class User < ActiveRecord::Base
  include Plan
end

if you want it to be available everywhere

one solution is given by @VecchiaSpugna

or you can create a ruby file in config/initializers folder

and require all file over there one by one

OR

try this

require '../../my_module/my_file'

instead of 

require '../../my_module/my_file.rb'

You don't need to specify extension for a file in require.

于 2013-07-30T16:54:24.173 に答える