Ruby Rails 参数比较在 If else 中不起作用
Ruby on Rails Params comparing not working in If else
我 运行 遇到了一个非常难运行的问题。我正在尝试在 rails 中使用 if 和 else,当我将 current_user.id 与数字进行比较时,它工作得很好,但是当我尝试使用 params 时,它不起作用。这是我的有效代码:
<%= @u = 2 %>
<% if current_user.id == @u %>
ssssss
<% else %>
aaaaaaaaa
<% end %>
当我尝试使用此代码时:
<%= @u = params[:id] %>
<% if current_user.id == @u %>
ssssss
<% else %>
aaaaaaaaa
<% end %>
它总是给我 aaaaaaaaa 的价值,如果有人能帮我解决这个问题,那将会很有帮助
使用 current_user.id == @u.to_i
而不是 @u
,因为 params 获取一个字符串,而您与一个整数进行比较。
或者您可以使用current_user.id.to_s == @u
进行比较
已给出正确答案。在这种情况下,我通常喜欢用“.inspect”输出我感兴趣的变量。这通常会给出有关问题所在的明确信息。
在您的特定情况下,id 的输出为 3
,参数的输出为 "3"
- 这样很容易看出。
您在此处尝试将字符串与数字进行比较。以上答案已经足够,但我想更正您的代码,只需将其添加到您的代码中即可:
<%= @u = 2 %>
<% if current_user.id == @u.to_i %>
ssssss
<% else %>
aaaaaaaaa
<% end %>
我 运行 遇到了一个非常难运行的问题。我正在尝试在 rails 中使用 if 和 else,当我将 current_user.id 与数字进行比较时,它工作得很好,但是当我尝试使用 params 时,它不起作用。这是我的有效代码:
<%= @u = 2 %>
<% if current_user.id == @u %>
ssssss
<% else %>
aaaaaaaaa
<% end %>
当我尝试使用此代码时:
<%= @u = params[:id] %>
<% if current_user.id == @u %>
ssssss
<% else %>
aaaaaaaaa
<% end %>
它总是给我 aaaaaaaaa 的价值,如果有人能帮我解决这个问题,那将会很有帮助
使用 current_user.id == @u.to_i
而不是 @u
,因为 params 获取一个字符串,而您与一个整数进行比较。
或者您可以使用current_user.id.to_s == @u
已给出正确答案。在这种情况下,我通常喜欢用“.inspect”输出我感兴趣的变量。这通常会给出有关问题所在的明确信息。
在您的特定情况下,id 的输出为 3
,参数的输出为 "3"
- 这样很容易看出。
您在此处尝试将字符串与数字进行比较。以上答案已经足够,但我想更正您的代码,只需将其添加到您的代码中即可:
<%= @u = 2 %>
<% if current_user.id == @u.to_i %>
ssssss
<% else %>
aaaaaaaaa
<% end %>