Написание простого условного утверждения в IRB
-
26-09-2019 - |
Вопрос
Я ищу всех организаций с URL «http: //» и обновляя их атрибуты на «».
Моя попытка:
Organization(:all).select { |o| o.url = "http://" ? o.update_attribute("url","")}
Который возвращает ошибку компиляции:
SyntaxError: compile error
(irb):2: syntax error, unexpected '}'
from (irb):2
Есть идеи?
Решение
Попробуйте использовать update_all
Organization.update_all("url = ''", ["url =?",'http://'])
Другие советы
Я ни в коем случае не является экспертом Ruby, но мое первое подозрение заключается в том, что вы используете оператор присваивания (=) вместо оператора равенства (==). Быстрый поиск Google для «ruby Irb условный», кажется, доказывает это.
И вы, вероятно, получили голосование, потому что вы не включали ошибки компиляции в вашем вопросе. Если мое предположение неверно, я даже не могу помочь попробовать интерпретировать сообщение об ошибке, потому что вы его не предоставили.
Обновление: на основе первого комментария к ответу, я полагаю, что мое первое подозрение неверно - неправильное истолкование намерения линии кода. Но тогда это то, что происходит, когда сообщения об ошибках не доступны.
Update2: первый комментарий не там ... Может быть, это было удалено или, возможно, я начал печатать в неправильном месте ...