Ruby on rails 新手:三元;如果;视图上的条件语法

Ruby on rails 新手:三元;如果;视图上的条件语法,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,我希望if条件逻辑如下: var == 10 ? “10″ : “Not 10″ 在Rails视图中。我尝试的是: <%= session[:id]=="out"? link_to "Sign in", login_path : link_to "Sign out", logout_path%> 试试这个(唯一的区别是“和?之间的空格和括号的使用) 尽管括号在Ruby中是可选的,但在某些情况下需要它们来保持运算符优先级 IMHO三元运算符很难阅读。您还可以执行更详细的操作:

我希望if条件逻辑如下:

var == 10 ? “10″ : “Not 10″
在Rails视图中。我尝试的是:

<%= session[:id]=="out"? link_to "Sign in", login_path : link_to "Sign out", logout_path%>
试试这个(唯一的区别是
之间的空格和括号的使用)


尽管括号在Ruby中是可选的,但在某些情况下需要它们来保持运算符优先级

IMHO三元运算符很难阅读。您还可以执行更详细的操作:

<%= link_to("Sign in", login_path) if session[:id] == "out" %>
<%= link_to("Sign out", logout_path) if session[:id] != "out" %>

看起来不对,应该是这样的

session[:id]=="out" ?
顺便说一句,如果您需要else部分中的更多链接,请切换到if else。它可能更干净:

<% if condition %>
  link
<% else %>
  link
  link
<% end %>

链接
链接
链接
+1最终使用了语法,谢谢。
session[:id]=="out"?
session[:id]=="out" ?
<% if condition %>
  link
<% else %>
  link
  link
<% end %>