В моем приложении Rails 3 есть объект UserAction, который я использую для хранения информации о действиях, предпринятых на моем сайте.
Я пытаюсь отфильтровать результаты, чтобы получить только те, для которых установлен атрибут данныхк определенному значению, но по какой-то причине он всегда возвращает пустой массив.
Вот пример из консоли, показывающий первую запись, запрос, который возвращает ее на основе атрибута 'action', и тот, которыйне работает для атрибута «data»:
> UserAction.first
UserAction Load (39.6ms) SELECT "user_actions".* FROM "user_actions" LIMIT 1
=> #<UserAction id: 1, source: "127.0.0.1", action: "Failed login attempt", data: "admin", created_at: "2012-01-12 11:26:38", updated_at: "2012-01-12 11:26:38">
> UserAction.where('action = ?', "Failed login attempt")
UserAction Load (1.2ms) SELECT "user_actions".* FROM "user_actions" WHERE (action = 'Failed login attempt')
=> [#<UserAction id: 1, source: "127.0.0.1", action: "Failed login attempt", data: "admin", created_at: "2012-01-12 11:26:38", updated_at: "2012-01-12 11:26:38">]
> UserAction.where('data = ?', "admin")
UserAction Load (96.5ms) SELECT "user_actions".* FROM "user_actions" WHERE (data = 'admin')
=> []
Почему Rails возвращает пустой массив для второго запроса, когда явно есть запись, где данные равны «admin»?Я должен отметить, что в настоящее время я обновляю приложение с Rails 2.3.5, так что оно может быть чем-то новым, введенным в Rails 3 (я использую Rails 3.1.2).Кроме того, я начал использовать Postgresql в разработке вместо Sqlite, который я использовал раньше.
Заранее спасибо.