Я ищу все Организации с 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://'])
Я ни в коем случае не эксперт по рубинам, но мое первое подозрение заключается в том, что вы используете оператор присваивания (=) вместо оператора равенства (==). Быстрый поиск в Google по запросу "ruby irb conditional", кажется, доказывает это.
И вы, вероятно, проголосовали против, потому что вы не включили ошибки компиляции в свой вопрос. Если мое предположение неверно, я даже не могу не попытаться интерпретировать сообщение об ошибке, потому что вы его не предоставили.
ОБНОВЛЕНИЕ: основываясь на первом комментарии к ответу, я считаю, что мое первое подозрение было неправильным - неправильное толкование цели строки кода. Но вот что происходит, когда сообщения об ошибках недоступны.
UPDATE2: первого комментария там нет ... может быть, он был удален или, может быть, я начал печатать не в том месте ...