ROR初学者,为什么我的查询的一个版本工作但另一个版本没有

时间:2012-05-11 15:17:20

标签: mysql ruby-on-rails ruby-on-rails-3

以下工作正常:

def self.already_joined?(days_event,user)
    already_joined=DaysEventsUser.where(:user_id=>user, :days_events_id=>days_event)
    if !already_joined.empty?
        return true
    end
end

但以下情况并非如此:

def self.already_joined?(days_event,user)
already_joined=DaysEventsUser.where("user_id=>? AND days_events_id=>?",user,days_event)
if !already_joined.empty?
    return true
end
end

我的理解是第二个更安全,查询似乎可以正常工作但是一旦我尝试测量它是否返回值我得到错误:

Mysql2 ::错误:您的SQL语法中有错误;查看与您的MySQL服务器版本对应的手册,以便在第1行使用“=> 37和days_events_id => '20')'附近使用正确的语法:SELECT COUNT(*)FROM days_events_users WHERE(user_id => 37 AND days_events_id => '20')

1 个答案:

答案 0 :(得分:1)

already_joined=DaysEventsUser.where("user_id= ? AND days_events_id= ?",user,days_event)