2

Rails 3.2.11プロジェクトにapp/queries/visible_discussions.rb、次のようなファイルがあります。

class VisibleDiscussions
  ...
end

クエリに名前空間を付けて、次のようなものを使用して呼び出すことができるようにしたいQueries::VisibleDiscussionsので、次のことを試みました。

module Queries
  class VisibleDiscussions
    ...
  end
end

しかし、レールコンソールからuninitialized constant Queries (NameError)電話をかけようとすると、が表示されます。Queries::VisibleDiscussions

何か案は?

4

2 に答える 2

3

libautoload_pathsに追加すると、libの下の名前空間が尊重されます-lib/query/visible_discussions.rb

または、アプリの下に新しいディレクトリを作成します-srcと言ってから、そこにコードをネストします-app/src/query/visible_discussions.rb

私はあなたの投稿でこれらのいずれかに3番目のスタイルを使用します、すなわち

module Query
  class VisibleDiscussions
    ...
  end
end

これらのソリューションは両方とも私にとって迷惑です。アプリの下の名前空間ディレクトリにレールを伝える方法があるかもしれませんが、それがどのように行われるのかわかりません

于 2013-01-16T03:15:37.153 に答える
0

Railsは、ロードするディレクトリを知る必要があります(デフォルトの一部)。試す:

#config.application.rb
config.autoload_paths += %W(#{config.root}/queries)
于 2013-01-15T23:45:56.103 に答える