2015-10-29 3 views
0

Я мигрируют из Rails 3.x в Rails 4.2миграции в РЕЛЬСЫ 4.2

У меня есть следующий код:

Order.all :conditions => ["flagged = ? AND orders_id != ? AND (
    delivery_name = ? OR 
    delivery_telephone = ? OR 
    email = ? OR 
    ((delivery_address IS NOT NULL AND delivery_address != '') AND delivery_address = ?) OR 
    (remote_ip IS NOT NULL AND remote_ip = ?) 
)", 
    true, 
    self.orders_id, 
    self.delivery_name, 
    self.delivery_telephone, 
    self.email, 
    self.delivery_address, 
    self.remote_ip, 
] 

и когда я запускаю тесты я получаю следующее deprication:

ПРЕДУПРЕЖДЕНИЕ О ДЕПРЕКАЦИИ: Отношение № все устарело. Если вы хотите, чтобы загрузили отношение, вы можете вызвать #load (например, Post.where(published: true).load). Если вы хотите получить массив записей из отношения, вы можете вызвать #to_a (например, Post.where(published: true).to_a). (Так называемый из similar_flagged_orders в /Users/fisnik/code/myr-admin/app/models/order.rb:173)

Любые предложения, пожалуйста?

ответ

1
Order.where("flagged = ? AND orders_id != ? AND (
    delivery_name = ? OR 
    delivery_telephone = ? OR 
    email = ? OR 
    ((delivery_address IS NOT NULL AND delivery_address != '') AND delivery_address = ?) OR 
    (remote_ip IS NOT NULL AND remote_ip = ?) 
)", 
    true, 
    orders_id, 
    delivery_name, 
    delivery_telephone, 
    email, 
    delivery_address, 
    remote_ip 
) 

Обновление с 3.x прямо до 4.2 безумно и неизбежно вы будете много бороться, чтобы все работало.

Do it gradually.

Первое обновление до 3,2, затем до 4,0, и только здесь у вас есть 2 варианта - 4.1 и 4.2.

Также постепенно обновляйте тестовую инфраструктуру.

Смежные вопросы