Направляющие: назовите метод в рамках модели

Наслаждайтесь:

forfiles -p "C:\what\ever" -s -m *.* -d  -c "cmd /c del @path"

См. forfile документация для получения дополнительной информации.

Для большего количества положительных героев, обратитесь к Индекс A-Z командной строки .

Windows XP, Если Вы не имеете forfiles установленный на Вашей машине, скопируйте его с любого Windows Server 2003 к Вашему Windows  машина XP в %WinDir%\system32\. Это возможно, так как EXE полностью совместим между Windows Server 2003 и Windows  XP.

Более поздним версиям Windows Server и Windows Server установили его по умолчанию.

Для Windows  7 и более новый (включая окна 10):

синтаксис изменился немного. Поэтому обновленная команда:

forfiles /p "C:\what\ever" /s /m *.* /D - /C "cmd /c del @path"

6
задан mickey 17 July 2009 в 15:31
поделиться

3 ответа

Отчасти проблема заключается в том, что вы определяете метод класса с именем find_current и метод экземпляра с именем filter_my_rows. Обычно вы определяете их обоих в одной и той же области, чтобы они работали вместе.

Другое дело, что вы можете выполнить большую часть необходимой фильтрации с помощью простого вызова Array # reject. Например:

@models = all.reject do |m|
   # This block is used to remove entries that do not qualify
   # by having this evaluate to true.
   !m.current
end

Вы можете сделать это в некоторой степени модульным путем добавления необходимых функций, но это может быть чрезвычайно сложно управлять, если вы не будете осторожны.

# Define reusable blocks that are organized into a Hash
CONDITION_FILTERS = {
  :current => lambda { |m| m.current }
}

# Array#select is the inverse of Array#reject
@models = all.select(CONDITION_FILTERS[:current])

Хотя вы заявили в своем вопросе, что это было необходимо только потому, что опасений по поводу невозможности определить релевантность конкретной записи до того, как все записи будут загружены из базы данных, это, как правило, плохая форма, поскольку вы, вероятно, отклоните большой объем данных, которые вы '

4
ответ дан 10 December 2019 в 02:51
поделиться

используйте named_scope вместо

named_scope :current, :conditions => {:active => true} # this is normal find criteria

, тогда в вашем контроллере

@date = Model.current

вы также можете сделать лямбда-функции named_scopes

2
ответ дан 10 December 2019 в 02:51
поделиться

Что не так с вашими решениями? Что именно вы ищете? Если я понял вашу точку зрения, основная проблема вашей реализации состоит в том, что

Этот метод «фильтра» будет вызываться из многих пользовательских методов поиска внутри эта модель, поэтому я хочу, чтобы она была отдельно.

... что вы не можете использовать named_scopes или with_scope, первое решение, которое приходит мне в голову, - это создать настраиваемую оболочку, которая будет действовать как фильтр.

class Model
  def self.find_current
    filtered do
      all
    end
  end

  def self.other_method
    filtered do
      all :conditions => { :foo => "bar" }
    end
  end

  def self.filtered(&block)
    records = yield
    # do something with records
    records
  end

end
0
ответ дан 10 December 2019 в 02:51
поделиться
Другие вопросы по тегам:

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