我是 Ruby 新手,最近在创建 Ruby on Rails 应用程序时遇到了与值进行比较的问题。在控制器中,我有以下始终返回 false 的语句:
if (user.id != params[:id])
问题是 user.id(它是一个 Active Record)是一个整数,而 params[:id] 是一个字符串。我花了一段时间才弄清楚这一点,最后我把它改成了:
if (user.id != params[:id].to_i)
现在该语句按预期工作。
为避免将来出现此错误,是否有办法“编译”或让 Ruby 在您尝试比较 2 种不同类型时发出警告?我遇到的其他一些我想“编译检查”的问题是:
- 如果我创建变量但不使用它,请警告我。帮助检查变量名中的拼写错误。
- 确保类中存在一个方法,这样我就可以避免方法名称拼写错误,也有助于重构,例如,如果我重命名一个方法。
我目前在 Windows 上使用 Ruby 1.8.6-27 RC2 和 Rails 2.3.2 和 RadRails IDE。