我是ruby的新手,我不明白一些例子
任何人都可以解释这个探索
redirect_to @message ? read_account_inbox_message_url(@message) : account_inbox_url
答案 0 :(得分:2)
如果@message
返回true
,则重定向到read_account_inbox_message_url(@message)
网址,否则重定向到account_inbox_url
答案 1 :(得分:2)
它被称为三元运算符。这是
的简写redirect_to if @message
read_account_inbox_message_url(@message)
else
account_inbox_url
end
作为if语句,它检查条件真实性并返回第一部分或第二部分的评估。
答案 2 :(得分:1)
它被称为三元运算符。这是简短的说法:
if redirect_to @message is true
then
read_account_inbox_message_url(@message)
otherwise
account_inbox_url
语法是
test ? if_test_result_is_true_then_do_this : if_test_result_is_false_then_do_this
答案 3 :(得分:1)
它是一样的:
if @message
read_account_inbox_message_url(@message)
else
account_inbox_url
end
答案 4 :(得分:1)
?:
是三元条件表达式:
condition ? value_if_true : value_if_false
这是一个简写:
if condition
value_if_true
else
value_if_false
end
在您的示例中,@message
是条件,read_account_inbox_message_url(@message)
是“真值”,account_inbox_url
是“假值”。评估后,使用表达式的结果调用redirect_to
。
它相当于(我会用这种方式写):
if @message
redirect_to read_account_inbox_message_url(@message)
else
redirect_to account_inbox_url
end
答案 5 :(得分:0)
这是一个三元表达式,用作方法redirect_to
的参数。
用语言来表示:redirect to read_account_inbox_message_url(@message) if @message is true, or, redirect_to account_inbox_url
三元表达式的格式为:expression ? evaluate_if_true : evaluate_if_false
。
答案 6 :(得分:0)
此代码与以下内容相同:
redirect_to (@message ? read_account_inbox_message_url(@message) : account_inbox_url)
如果@message
是“真实的”(在Ruby中,除nil
和false
之外的所有内容都是真实的),read_account_inbox_message_url(@message)
的结果将作为参数传递给{{ 1}}方法。否则将传递redirect_to
结果。