Правильный синтаксис SQL в рельсах для поиска объектов, созданных после X datetime - PullRequest
1 голос
/ 13 декабря 2010

Не получается, что мой синтаксис правильный ... возможно, это легко решить.

Я пытаюсь найти все объекты комментариев, созданные после last_checked_mail

, который я пытался..

current_user.comments.find(:all, :conditions => ["created_at > ?, current_user.last_checked_mail"])

Но это возвращает:

ActiveRecord::PreparedStatementInvalid: wrong number of bind variables (0 for 1)

Ответы [ 2 ]

2 голосов
/ 13 декабря 2010

Вы заканчиваете строку в неправильном месте. Должно быть:

["created_at > ?", current_user.last_checked_mail]

В сообщении об ошибке говорится, что у вас нет переменной для резервного копирования вашего "?" в запросе. Для каждого '?' в вашей строке запроса вам нужно иметь объект в массиве, который привязывается к этому вопросительному знаку. Так как у вас есть один? В вашем запросе rails ожидает найти одну «переменную связывания», к которой будет привязан этот вопросительный знак.

Это потому, что ваша строка поглотила переменную, которую вы намеревались использовать по ошибке.

0 голосов
/ 13 декабря 2010

попробуйте это.

current_user.comments.find(:all, :conditions => ["created_at > ?", current_user.last_checked_mail])

Вам нужно поместить переменные вне кавычек ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...