Круговые зависимости в Ruby

Разреженный индекс можно использовать только при фильтрации по created_at: {$exists: true}.

Причина в том, что все остальные записи не являются частью индекса (но они все еще должны появляться в результате - возможно, в конце).

Может быть, вам не нужно делать индекс разреженным (что имеет смысл только тогда, когда большинство записей не имеют поля - в противном случае вы все равно не сэкономите много места в хранилище индекса)? created_at звучит так, как если бы большинство записей имело это.

Добавлен разреженный индекс в созданный_каталог, поскольку это обязательное поле.

На самом деле, все наоборот: редкий индекс требуется только тогда, когда поле является необязательным (и довольно редким).

11
задан doppelgreener 16 September 2013 в 00:11
поделиться

2 ответа

Если необходимо получить доступ к подклассу от суперкласса затем существует хороший шанс, что модель повреждается (т.е. это должен быть один класс).

Тем не менее существует несколько очевидных решений:

1) просто создайте файл, который требует файлов нечто:

all_foos.rb:

require "foo.rb"
require "foo_sub.rb"

и удалите требование от foo.rb и foo_sub.rb.

2) удалите требование от foo.rb

3) удалите требование от foo_sub.rb и поместите требование в foo.rb после определения класса.

Ruby не является C++, он не будет жаловаться на FooSub. SOME_CONSTANT, пока Вы не называете Foo#foo () ;)

15
ответ дан 3 December 2019 в 05:14
поделиться

Еще один достойный вариант - использовать функцию автозагрузки Ruby.

Она работает следующим образом:

 module MyModule
      autoload :Class1, File.join(File.dirname(__FILE__), *%w[my_module class1.rb])
      autoload :Class2, File.join(File.dirname(__FILE__), *%w[my_module class2.rb])
      # Code for MyModule here
 end

и хорошо описана здесь:

http: //talklikeaduck.denhaven2. com / 2009/04/06 / all-that-you-might-require

4
ответ дан 3 December 2019 в 05:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: