Наслаждайтесь:
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"
Отчасти проблема заключается в том, что вы определяете метод класса с именем 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])
Хотя вы заявили в своем вопросе, что это было необходимо только потому, что опасений по поводу невозможности определить релевантность конкретной записи до того, как все записи будут загружены из базы данных, это, как правило, плохая форма, поскольку вы, вероятно, отклоните большой объем данных, которые вы '
используйте named_scope вместо
named_scope :current, :conditions => {:active => true} # this is normal find criteria
, тогда в вашем контроллере
@date = Model.current
вы также можете сделать лямбда-функции named_scopes
Что не так с вашими решениями? Что именно вы ищете? Если я понял вашу точку зрения, основная проблема вашей реализации состоит в том, что
Этот метод «фильтра» будет вызываться из многих пользовательских методов поиска внутри эта модель, поэтому я хочу, чтобы она была отдельно.
... что вы не можете использовать 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