繁体   English   中英

Ruby on Rails如果……否则

[英]Ruby on Rails If…Else

我有以下代码:

<div class="category_name">
     <%= current_user %>
     <%= review.user.front_name %>
      <% if current_user.name = review.user.front_name %>
      <%= link_to "You", user_path(review.user) %> / <%= review.categories_list %>
      <% else %>
      <%= link_to review.user.front_name, user_path(review.user) %> / <%= review.categories_list %>
      <% end %>
    </div>

它呈现出类似以下内容:

汤姆·墨菲·比尔·史密斯You /电影

为什么会这样呢?

<% if current_user.name = review.user.front_name %>

换句话说,如果汤姆·墨菲(Tom Murphy)=比尔·史密斯(Bill Smith)...那不是...难道不是在“其他”之后到那一行吗? 那就是我想发生的事情。

<% if current_user.name = review.user.front_name %>替换为

<% if current_user.name == review.user.front_name %>

你放= ,你必须放==

在Ruby中,检查相等性应使用双等号( == )。

另外-当前,您正在比较名称。 您应该比较对象(用户),以避免错误甚至更糟(违反安全性)。

<% if current_user == review.user %>

只需修改: <% if current_user.name = review.user.front_name %>更改为

<% if current_user.name == review.user.front_name %>

== (double equal)测试是否相等。

当您要进行条件声明时。 您应该比较您的陈述。 例如:

if number == 10
   print "Variable is 10"
elsif number == "20"
   print "Variable is 20"
else
   print "Variable is something else"
end

根据您的情况,请更改行:

<% if current_user.name = review.user.front_name %>

在此处更改代码

<% if current_user.name == review.user.front_name %>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM