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