2013-11-13 3 views
0

Так что я пытаюсь создать список пивоваренных заводов на основе местоположения, которое пользователь входит в поле ввода. Как я его настроил в моем javascript, у меня есть браузер, отправляющий на сервер запросы ajax, тогда сервер связывается с базой данных третьей стороны и обратно в браузер.Использование хэша Params в моем приложении Rails

Этот код работает, когда я жестко указываю местоположение, такое как «Чикаго» в контроллере, но я хочу его обобщить, чтобы я мог проходить в любом месте, которое вводил пользователь. Я думаю, что это имеет какое-то отношение к хэшу params, но я не уверен, как его реализовать.

routes.rb

get 'search' => 'home#search_breweries_by_location' 

дом controller.rb

def search_breweries_by_location 
    breweries = @brewery_db.locations.all(locality: location) 
    render({:json=>breweries}) 
end 

/home/index.html.erb

var location = document.getElementById('location').value; 

$.post('/search', {locality: location}, function(data){ 
    for(var i = 0; i < data.length; i++){ 
    $('#brewery-list').append(data[i].brewery.name); 
    } 
}); 
+0

Что вы видите в файлах журнала, если вы добавляете 'Rails.logger.info '\ nПарамы Hash: # {params.inspect} \ n" 'в начале метода' search_breweries_by_location' в вашем 'home_controller.rb '? – CDub

+0

Хмм ... не знаю, как записать файл журнала – user2623706

+0

Предполагая, что вы находитесь в каталоге своего приложения, в терминале: 'tail -f log/development.log' – CDub

ответ

2

Я вроде новичок в Rails себя, но я всегда использовал следующую парадигму, чтобы посмотреть вещи в ActiveRecord:

@brewery_db.locations.where(locality: params[:locality]) 

Снова не уверен, что это решает проблему, но, возможно, часть params[:locality] доставит вам то, что вам нужно.

+0

Да. Это сработало! – user2623706

0

Один из ваших проблем является то, что вы делаете POST к /search, но у вас есть только маршрут, который соответствует GET на /search. Я бы начал с переключения маршрута на POST вместо GET.

Смежные вопросы