所以我想做的是根据用户在输入字段中输入的位置生成啤酒厂列表。如何设置它,是在我的JavaScript中,我让浏览器将Ajax请求发送到服务器,然后服务器与第三者的数据库进行通信并返回到浏览器。

当我在控制器中对“ Chicago”之类的位置进行硬编码时,此代码有效,但我想将其概括化,以便可以传递用户输入的任何位置。我认为这与params hash有关,但是对于如何实现尚不确定。

routes.rb

get 'search' => 'home#search_breweries_by_location'


家庭控制器

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

最佳答案

我本人还是Rails的新手,但我一直使用以下范例在ActiveRecord中查找内容:

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


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

09-19 23:40