使用jQuery从ClientSide查询rails数据库

时间:2015-05-04 23:56:11

标签: jquery ruby-on-rails

我有一个rails应用程序,显示一个表(tr)的业务。当用户点击前端的业务行时,我想查询我的rails数据库,获取与该业务相关的所有评论,并在同一页面上动态呈现。我不太确定这样做的最佳方法是什么,但是正在考虑构建一个使用jQuery AJAX查询数据库的路径。我目前收到404错误,不知道我错了哪一部分。

我的app.js中的事件监听器

    $(function(){
      $("#home-table").on('click', 'tr', function() {
        var businessName = $(this).find(".business-name").text();
       $.ajax({
          url: "http://localhost:3000/query_business?name=" + businessName,
          type: "GET",
          dataType: "json"
        }).done(function(server_data) {
          console.log(server_data);  #I will eventually parse out json data 
        }).fail(function() {
          console.log("fail");
       });
     });

这就是我认为我应该在控制器中拥有的内容。

   class BusinessController < ApplicationController
      def query_business
         @business = Business.find(name: params[:name])  
         @ratings = @business.ratings

         respond_to do |format|
           format.json { render :json => @ratings }
         end
      end
    end 

在我的routes.rb

    get '/query_business', to: 'business#query_business', as: :query_business

1 个答案:

答案 0 :(得分:0)

您可以使用

@business = Business.find_by(name: params[:name])

@business = Business.where(name: params[:name]).first

我认为方法find期待该记录的id。你得到404,可能是因为找不到商业记录。