Ответ 1
Попробуйте это.
@fromcanada = User.find(:all, :conditions => { :country => 'canada' })
изменить: Как указал jason328, вышеупомянутый ответ устарел в 3.2, и обновленный ответ будет
@fromcanada = User.where(:country => 'canada')
в моем приложении У меня есть пользователи из разных стран и вы хотите выполнить на них находки
Я попытался сделать это так, как показано в действии index
@fromcanada = User.find(:all, :country => 'canada')
но я получил ошибку
Unknown key: country
Однако, что заставляет меня спрашивать, что может стать ключом? В моем файле схемы базы данных у меня есть столбец "страна" в таблице пользователей.
t.string "country"
Кроме того, когда я нашел все
@users = User.all
Я смог сделать это
<%= user.country %></p>
Можете ли вы объяснить, почему моя находка с условиями не работает? и показать мне, как я должен был это сделать?
Попробуйте это.
@fromcanada = User.find(:all, :conditions => { :country => 'canada' })
изменить: Как указал jason328, вышеупомянутый ответ устарел в 3.2, и обновленный ответ будет
@fromcanada = User.where(:country => 'canada')
Если никто не читает комментарии. Лучшим форматом будет
@fromcanada = User.where(country: 'canada').all
Предыдущий код ответа устарел в 3.2.
А для тех, кто использует Rails 4, достаточно удалить метод all
.
@fromcanada = User.where(country: 'canada').to_a
Обратите внимание, что to_a
вызывает запрос в формате массива.