Mână scurtă Ruby pentru o condiție simplă if else (Programare, Ruby Pe Șine, Ruby)

Hopstream a intrebat.

Există o modalitate mai simplă de a scrie acest cod Ruby:

if @canonical_url
    @canonical_url
else
    request.original_url
end

2 răspunsuri
Chuck

Acest model este ceea ce este pentru care este operatorul or.

@canonical_url || request.original_url

Sau, în cazurile în care prima ramură nu este doar rezultatul dacă testul, operatorul condițional funcționează la fel de bine:

some_condition ? @canonical_url : request.original_url

Justin Wood
cond ? then_branch : else_branch

în cazul tău.

@cononical_url ? @cononical_url : request.original_url

Se numește un ternar.