0
我得到一个奇怪的错误:的Rails 3 ActiveRecord的迁移 - 的ActiveRecord :: StatementInvalid
ActiveRecord::StatementInvalid in AdminController#edit_user
NoMethodError: undefined method `empty?' for 663:Fixnum: SELECT privileges.*, ...
In: app/controllers/admin_controller.rb:75:in `edit_user'
这里是有问题的行:
#line #75 from admin_controller.rb
@privileges = Privilege.find_by_sql("SELECT privileges.*, vendors.name AS vendor_name FROM privileges LEFT JOIN vendors ON vendors.id = rivileges.vendor_id WHERE user_id = ? ORDER BY vendors.name", @user.id)
我可以通过取出修复占位符,但我不想这样做:
@privileges = Privilege.find_by_sql("SELECT privileges.*, vendors.name AS vendor_name FROM privileges LEFT JOIN vendors ON vendors.id = privileges.vendor_id WHERE b2b_user_id = "[email protected]_s+" ORDER BY vendors.name")
fin在Rails 3中,d_by_sql尚未被弃用,我可以将该查询抽入数据库。
我觉得奇怪的是,没有电话“空”吗?在我的admin_controller。这是一个内部调用通过Rails清空?
请指教。
谢谢
在第一个查询,你提到它作为rivileges.vendor_id WHERE。这是一个错字吗? – felix 2013-03-26 13:26:09