У меня определены следующие стандартные Rails ActiveRecord Foo
:
# app/models/foo.rb
class Foo < ApplicationRecord
end
И я пытаюсь вызвать Foo.find(..)
из иерархии, содержащей модуль, также называемый Foo
..
# lib/commands/bar.rb
module Commands
module Bar
module Create
class Command
def initialize(params)
...
Foo.find(params[:foo_id]
...
end
end
end
end
end
# lib/commands/foo.rb
module Commands
module Foo
module Create
class Command
...
end
end
end
end
Ruby / Rails находит Commands::Foo
вместо моей Foo
модели и выдает undefined method 'find' for Commands::Foo:Module
.. как я могу указать на правильную реализацию ActiveModel?
Очевидный ответ - переименовать Commands::Foo..
в Commands::Foos..
, но мне любопытно узнать, есть ли другой способ: o)