AJAX从视图中获取模型数据

时间:2018-01-31 00:30:06

标签: jquery ruby-on-rails ajax

打印AJAX调用的结果时,我得到[object Object]。请帮我找一下我做得不对的部分。

事件模型包含name列,description。我是否正确期待这种输出?

{ "1" =>
  {
    "name" => "some name",
    "description" => "some description"
  }
}
  

查看:

function testAJAX() {
  var test_url = "#{foo_events_path}";
  $.ajax({
    type: "GET",
    url: test_url,
    data: {
      event_id: 1
    },
    success:function(data) {
      var response = JSON.parse(JSON.stringify(data));
      alert(response.events);
    }
  });
     

events_controller.rb

def foo
  @events = Event.where(id: params[:event_id])
  render json: { events: @events }.to_json
end
     

的routes.rb

resources :events do
  collection do
    get 'foo'
  end
end

我尝试使用谷歌搜索但其中大多数使用AJAX for php。这是我能找到的与我的问题最相关的:Is it possible to refresh partial frequently using Ajax?

1 个答案:

答案 0 :(得分:2)

您的控制器方法应如下所示:

def foo
  @events = Event.where(id: params[:event_id])
  render json: { events: @events }
end

render json:将创建有效的JSON响应。

然后,您应该能够像这样访问您的数据对象:

function testAJAX() {
  var test_url = "#{foo_events_path}";
  $.ajax({
    type: "GET",
    url: test_url,
    data: {
      event_id: 1
    },
    success:function(data) {
      alert(data.events);
    }
  });