Ruby on Rails Params比较不能用于If else

时间:2015-08-15 17:30:41

标签: ruby-on-rails conditional

我遇到了一个非常奇怪的问题。我正在尝试使用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值,如果有人能帮我解决这个问题会有所帮助

3 个答案:

答案 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" - 很容易看到。