0

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

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

路线.rb

get 'search' => 'home#search_breweries_by_location'

家庭控制器.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);
  }
});
4

2 回答 2

2

我自己对 Rails 有点陌生,但我一直使用以下范例在 ActiveRecord 中查找内容:

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

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

于 2013-11-13T19:51:35.857 回答
0

您的问题之一是您正在做一个POSTto/search但您只有一条匹配GETon的路线/search。我会首先将您的路线切换为匹配,POST而不是GET.

于 2013-11-13T20:42:15.120 回答