Я использую mongomapper с моим приложением rails.Он ошибается всякий раз, когда в записи монго есть «\ n» в «_index» или в любом из полей.
SyntaxError: (eval): 1: синтаксическая ошибка, неожиданное '\ n', ожидание tCOLON2или же '.'(eval): 3: синтаксическая ошибка, неожиданный ключевое слово_end, ожидаемый $ end
Причина, по которой поля имеют "\ n", заключается в том, что данные были очищены и не очищены должным образом.
Например, это одно из проблемных полей:
ruby-1.9.2-p180 :004 > Activity.where(:_index => /\n/i).first["_index"]
=> "Heating Building\n\nAir Emissions"
Чтобы исправить это в ruby (mongoid), это будет в основном:
Activity.where(:_index => /\n/i).each do |a|
a.update_attribute(:_index, a[:_index].gsub("\n", " "))
end
Есть ли способ, как я могу это исправить?просто используя запрос монго?
Запрос монго должен пройти через каждую строку монго и заменить "\ n" на "" в поле _index.
Причина, по которой я спрашиваю, заключается в том, что мынет времени переместить наше приложение из mongomapper в mongoid (mongoid знает, как обрабатывать \ n без ошибок).