Eu me pergunto como obter de uma string "nil" o nulo: NilClass?
nil.inspect -> "nil"
Eu desejo algo como:
"nil".to_nil -> nil
Atualizar:
Conforme escrevo o comentário abaixo, é mais fácil:
params[:form].each_pair{|k,v| fields[k] = k.to_s.include?("_id") ? v.to_nil : v
então
params[:form].each_pair{|k,v| fields[k] = k.to_s.include?("_id") ? (v == "nil" ? nil : v) : v }
Respostas:
1 para resposta № 1Abra novamente a classe de string se quiser essa funcionalidade globalmente.
class String
def to_nil
if self == "nil"
nil
else
self
end
end
end
"nil".to_nil # => nil
"another string".to_nil # => "another string"
3 para resposta № 2
Eu não vejo o sentido de um to_nil
, porque bem, é sempre nil
então escreva nil
. Mas se sua pergunta é qual é a operação inversa de inspect
, você pode usar eval
:
eval("nil") #=> nil
0 para resposta № 3
Você pode avaliar a string "nil", por exemplo:
=> eval("nil").nil?
irb> true