我想有if条件逻辑,如:
var == 10 ? “10″ : “Not 10″
在Rails上查看.我尝试的是以下内容:
<%= session[:id]=="out"? link_to "Sign in",login_path : link_to "Sign out",logout_path%>
我知道它看起来很奇怪,并且毫不奇怪它不起作用.所以,如果我想在VIEW上使用三元if条件,在我的情况下,正确的方法是什么?
———还有一个条件———
我希望在其他情况下有两个“link_to”
—–我收到的错误信息——–
compile error Syntax error,unexpected tSTRING_BEG,expecting kDO or '{' or '(' ...ession[:id]=="out" ? link_to "Sign in",
解决方法
试试这个(唯一的差异是“和?之间的空格和括号的使用”)
<%= session[:id]=="out" ? link_to("Sign in",login_path) : link_to("Sign out",logout_path) %>
在Ruby中,Altough括号是可选的,在某些情况下需要它们来维护运算符优先级.
恕我直言三元运算符很难读.你也可以做一些更冗长的事情:
<%= link_to("Sign in",login_path) if session[:id] == "out" %> <%= link_to("Sign out",logout_path) if session[:id] != "out" %>