Запись простого условного оператора в IRB

Я ищу все Организации с URL "http://" и обновляю их атрибуты к "".

Моя попытка:

Organization(:all).select { |o| o.url = "http://" ? o.update_attribute("url","")}

Который возвращает ошибку компиляции:

SyntaxError: compile error
 (irb):2: syntax error, unexpected '}'
   from (irb):2

Какие-либо идеи?

1
задан Trip 10 June 2010 в 19:27
поделиться

2 ответа

Попробуйте использовать update_all

Organization.update_all("url = ''", ["url =?",'http://'])
2
ответ дан 2 September 2019 в 23:51
поделиться

Я ни в коем случае не эксперт по рубинам, но мое первое подозрение заключается в том, что вы используете оператор присваивания (=) вместо оператора равенства (==). Быстрый поиск в Google по запросу "ruby irb conditional", кажется, доказывает это.

И вы, вероятно, проголосовали против, потому что вы не включили ошибки компиляции в свой вопрос. Если мое предположение неверно, я даже не могу не попытаться интерпретировать сообщение об ошибке, потому что вы его не предоставили.

ОБНОВЛЕНИЕ: основываясь на первом комментарии к ответу, я считаю, что мое первое подозрение было неправильным - неправильное толкование цели строки кода. Но вот что происходит, когда сообщения об ошибках недоступны.

UPDATE2: первого комментария там нет ... может быть, он был удален или, может быть, я начал печатать не в том месте ...

0
ответ дан 2 September 2019 в 23:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: