我遇到了一个非常奇怪的问题。我正在尝试使用if和else在rails中,当我将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值,如果有人能帮我解决这个问题会有所帮助
答案 0 :(得分:3)
使用return
而不是main
,因为params获取一个字符串并与整数进行比较。
或者您可以使用Scanner input = new Scanner(System.in);
System.out.println("Enter a word: ");
String str = input.nextLine(); // user input
String last = str.substring(str.length() - 1);
System.out.println(last + str + last);
答案 1 :(得分:1)
在这里,您尝试将字符串与数字进行比较。上面的答案已经足够,但我想纠正你的代码,只需将其添加到你的代码中就可以了:
<%= @u = 2 %>
<% if current_user.id == @u.to_i %>
ssssss
<% else %>
aaaaaaaaa
<% end %>
答案 2 :(得分:0)
已给出正确的答案。在这种情况下,我通常喜欢输出我对&#34; .inspect&#34;感兴趣的变量。这通常可以提供有关出错的明确信息。
在您的具体情况下,这将为ID生成3
,为参数生成"3"
- 很容易看到。