Escrevendo uma declaração condicional simples no IRB
-
26-09-2019 - |
Pergunta
Estou procurando todas as organizações com o URL "http: //" e atualizando seus atributos para "".
Minha tentativa:
Organization(:all).select { |o| o.url = "http://" ? o.update_attribute("url","")}
Que retorna um erro de compilação:
SyntaxError: compile error
(irb):2: syntax error, unexpected '}'
from (irb):2
Alguma ideia?
Solução
Tente usar update_all
Organization.update_all("url = ''", ["url =?",'http://'])
Outras dicas
Não sou especialista em rubi, mas minha primeira suspeita é que você está usando um operador de atribuição (=) em vez de um operador de igualdade (==). Uma rápida pesquisa no Google por "Ruby IRB condicional" parece provar isso.
E você provavelmente teve o voto para baixo porque não incluiu erros de compilação em sua pergunta. Se meu palpite estiver errado, não posso nem ajudar a tentar interpretar a mensagem de erro, porque você não o forneceu.
ATUALIZAÇÃO: Com base no primeiro comentário da resposta, acredito que minha primeira suspeita esteja errada - uma interpretação errônea da intenção da linha de código. Mas, então, é isso que acontece quando as mensagens de erro não estão disponíveis.
Atualização2: Primeiro comentário não está lá ... talvez tenha sido excluído ou talvez eu tenha começado a digitar no lugar errado ...