在我的Rails应用程序中使用Params哈希

时间:2013-11-13 19:33:56

标签: javascript ruby-on-rails ruby

所以我要做的是根据用户输入到输入字段的位置生成啤酒厂列表。我如何设置是在我的javascript我有浏览器向服务器发送ajax请求,然后服务器与第三方的数据库通信并返回到浏览器。

当我在控制器中对“芝加哥”这样的位置进行硬编码时,此代码有效,但我想将其概括为一般,以便我可以传入用户输入的任何位置。我认为这与params hash有关,但我不确定如何实现。

的routes.rb

get 'search' => 'home#search_breweries_by_location'

home 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);
  }
});

2 个答案:

答案 0 :(得分:2)

我自己对Rails有点新意,但我总是使用以下范例在ActiveRecord中查找:

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

再次不确定这是否能解决您的问题,但params[:locality]部分可能会为您提供所需的信息。

答案 1 :(得分:0)

您的一个问题是您正在POST/search,但您只有一条与GET /search匹配的路线。我首先将您的路线切换为POST而非GET匹配。