Ruby简写为简单的if else条件

Hop*_*eam 4 ruby ruby-on-rails

是否有更简单的方法来编写这个ruby代码:

if @canonical_url
    @canonical_url
else
    request.original_url
end
Run Code Online (Sandbox Code Playgroud)

Chu*_*uck 16

这种模式是or-operator的用途.

@canonical_url || request.original_url
Run Code Online (Sandbox Code Playgroud)

或者,如果第一个分支不仅仅是测试的结果,则条件运算符也可以:

some_condition ? @canonical_url : request.original_url
Run Code Online (Sandbox Code Playgroud)


Jus*_*ood 5

cond ? then_branch : else_branch
Run Code Online (Sandbox Code Playgroud)

在你的情况下.

@cononical_url ? @cononical_url : request.original_url
Run Code Online (Sandbox Code Playgroud)

它被称为三元组.