Подтвердить что ты не робот

Rails: Найти все с условиями

в моем приложении У меня есть пользователи из разных стран и вы хотите выполнить на них находки

Я попытался сделать это так, как показано в действии index

 @fromcanada = User.find(:all, :country => 'canada')

но я получил ошибку

 Unknown key: country

Однако, что заставляет меня спрашивать, что может стать ключом? В моем файле схемы базы данных у меня есть столбец "страна" в таблице пользователей.

t.string   "country"

Кроме того, когда я нашел все

@users = User.all

Я смог сделать это

<%= user.country %></p>

Можете ли вы объяснить, почему моя находка с условиями не работает? и показать мне, как я должен был это сделать?

4b9b3361

Ответ 1

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

@fromcanada = User.find(:all, :conditions => { :country => 'canada' })

изменить: Как указал jason328, вышеупомянутый ответ устарел в 3.2, и обновленный ответ будет

@fromcanada = User.where(:country => 'canada')

Ответ 2

Если никто не читает комментарии. Лучшим форматом будет

@fromcanada = User.where(country: 'canada').all

Предыдущий код ответа устарел в 3.2.

А для тех, кто использует Rails 4, достаточно удалить метод all.

@fromcanada = User.where(country: 'canada').to_a

Обратите внимание, что to_a вызывает запрос в формате массива.