`
tudopi
  • 浏览: 2944 次
  • 性别: Icon_minigender_2
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

rails中模糊查询时malformed format string及非法字符错误解决办法

阅读更多

在rails中使用find进行模糊查询时,出现了malformed format string输入为字符)或非法字符(输入为数字)的提示。
    (1) @vendors  = Vendor.find(:all,:conditions=>[@sql])
    (2) @vendors = Vendor.find_by_sql("select * from vendor where "+@sql)
    错误发生在按(1)方式查询过程中,采用(2)方式可以避免这个错误,这间接说明了find_by_sql确实相当不安全。
     查阅了一下资料,对于这个问题的说法如下:Rails uses sprintf (%) on the inside. So, Escape your % with %,因此只要将模糊查询的地方一个百分号全部换成两个便可以解决问题。

分享到:
评论
1 楼 yangzhihuan 2010-08-14  
刚才遇到这个问题了,以前一直没有留意这个。

相关推荐

Global site tag (gtag.js) - Google Analytics