rails比较params [:id]和session [:user_id]的值不起作用

ped*_*ete 11 ruby-on-rails string-comparison

从PHP迁移到摇滚乐之后我就开始崭露头角了,但是我对这种挫折并没有尽头,但希望有一个陡峭的学习曲线.

我正在关注如何在rails中制作一个Twitter克隆的指南,并继续沿着这条路径使它越来越像Twitter.

所以我有一个'用户'页面/users/show.html.erb,它显示了用户的所有帖子.

现在,如果当前登录的用户与页面所有者相同,我正在尝试显示文本框,以便用户可以添加新条目.

我应该有一个非常简单的东西

<% if params[:id] == session[:user_id] %>
    put the text box here
<% end %>

当然,这不起作用,但正好在它之上我输出了会话[:user_id]和参数[:id],打印输出完全相同.

如果我将==设置为!=,我会收到"将文本框置于此处"消息.

关于我做错了什么的任何建议?我知道这两个值匹配,正如我在网址和当前登录用户的输出中看到的那样.我也输出了

-<% session[:user_id] %>-
-<% params[:id] %>-

这样我就可以看到参数的两端都没有间隙或空格或其他字符,而且看起来都很干净.

输出看起来像这样

-4c4483ae15a7900fcc000003-
-4c4483ae15a7900fcc000003- 

这是用户的mongodb objectId,左侧有破折号,表示没有空格或任何东西.

jas*_*nac 17

你确定这两个项目都是简单的字符串吗?如果你跑,会发生什么

params[:id].to_s == session[:user_id].to_s
Run Code Online (Sandbox Code Playgroud)