Linux имеет механизм подсчета ссылок, таким образом, можно удалить файл, в то время как это выполняется, и это продолжит существовать целый некоторый процесс (Который ранее открылся, это) имеет открытый дескриптор для него. Запись каталога для файла удалена при удалении его таким образом, это не может больше открываться, но процессы уже с помощью этого файла могут все еще использовать его. Однажды все процессы с помощью этого оконечного файла, файл удален автоматически.
Windows не имеет этой возможности, таким образом, это вынуждено заблокировать файл, пока все процессы, выполняющиеся от него, не закончились.
я полагаю, что поведение Linux предпочтительно. Существуют, вероятно, некоторые глубокие архитектурные причины, но начало (и простой) обосновывает, что я нахожу самыми востребованными, то, что в Windows, Вы иногда не можете удалять файл, Вы понятия не имеете, почему, и все, что Вы знаете, - то, что некоторый процесс сохраняет его используемым. В Linux этого никогда не происходит.
Выполнение запроса UNION изначально невозможно с ActiveRecord. Итак, есть два решения:
Теперь при использовании подключаемого модуля union он отлично работает. Спасибо:
def self.ajax3(search)
Location.union( [{ :select => 'city AS keyword, country AS sideinfo',
:joins => :hotels,
:conditions => [ 'email IS NOT NULL AND city LIKE ?', "#{search}%" ]},
{ :select => 'country AS keyword, "Country" AS sideinfo',
:joins => :hotels,
:conditions => [ 'email IS NOT NULL AND country LIKE ?', "#{search}%" ]}] )
end