Ruby on Rails如果......其他

时间:2013-06-18 10:20:26

标签: ruby-on-rails if-statement

我有以下代码:

<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>

它呈现如下:

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

为什么会这样?

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

换句话说,如果汤姆墨菲=比尔史密斯......它不是......它不应该在'其他'之后走线吗?这就是我想要发生的事情。

4 个答案:

答案 0 :(得分:5)

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

你放=,你必须放==

答案 1 :(得分:2)

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

另外 - 目前您正在比较名称。您应该比较对象(用户)以避免错误甚至更糟(安全漏洞)。

<% if current_user == review.user %>

答案 2 :(得分:2)

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

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

==(双等)测试等值..

答案 3 :(得分:1)

当你想做条件陈述时。你应该比较你的陈述。 例如:

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 %>