2016-09-09 11 views
-3

Я новичок в рельсах, и я работаю над проектом, в котором у меня возникла проблема. Я пытаюсь отобразить все спортивные залы, которые имеют один и тот же почтовый индекс. Когда я попробовал код ниже, он отображает только 1, а не другие. Как отобразить весь тренажерный зал с одним и тем же почтовым индексом?Показано из моей базы данных

контроллер

def gym 
    @fitness = Fitness.find_by(zip_code: params[:zip_code]) 
end 

gym.html.erb

<%= @fitness.name %> 
+3

Вот совет любого разработчика в целом: независимо от структуры, инструмента или библиотеки, с которой вы работаете, есть хорошая возможность иметь [документацию] (http://api.rubyonrails.org/classes/ActiveRecord/ FinderMethods.html # метод-я-find_by). Не ленитесь и просите о помощи в тот момент, когда вы столкнетесь с неприятностями. Провести исследования. Найдите документацию. Прочтите. Применяйте то, что вы узнаете. Если вы тип, который не поможет себе, вы не должны долго ждать в этой отрасли. – MarsAtomic

ответ

1

Вы делаете это для себя. В definition, #find_by возвращает только одну запись, или nil. Вы, вероятно, хотите #where вместо:

Fitness.where(zip_code: params[:zip_code]) 

Если это все еще не работает, проверьте как табличные данные и содержимое вашего Params хэш, чтобы убедиться, что вы создаете действительный запрос.

+0

Спасибо, это сработало! – codecitynyc

1
def gyms 
    @fitness = Fitness.where("zip_code = ?", params[:zip_code]) 
end 
+0

Не знаете, почему вы перевернули это из краткой хэш-записи в длинную строку с версией-заполнителем. Это должно быть 'where (zip_code: params [: zip_code])', но это в противном случае правильно. – tadman