当我进行查询时......
使用find_by助手之间是否有任何有意义的区别?
在做这样的事情时,我是否有任何理由忽视选择较短的代码行?
Booking.find_all_by_user_id(1, :joins => :confirmation)
Booking.find(:all, :joins => :confirmation, :conditions => [ 'bookings.user_id = ?', 1] )
答案 0 :(得分:3)
不,关于注射攻击。
find_by
方法应该是安全的。然而,唯一的杀手锏是在使用conditions
方法时直接在find
参数中使用用户输入,例如:
Booking.find(:all, :joins => :confirmation, :conditions => [ 'bookings.user_id = #{params[user_id]]}'] )
当然正确的方法就是你做的方式,find
方法会过滤掉。
Booking.find(:all, :joins => :confirmation, :conditions => [ 'bookings.user_id = ?', params[user_id]] )
答案 1 :(得分:2)