Запросите базу данных рельсов, и обновите высокие графики, используя JavaScript - PullRequest
3 голосов
/ 24 августа 2011

У меня есть страница, которая показывает highchar.Я хотел бы использовать Javascript для получения нескольких частей информации для конкретного пользователя.Я хочу получить из своей базы данных и поместить его в старшие чарты.Я настроил JSfiddle , который показывает статические данные.Но

Я пытаюсь сделать следующее:

  • Заставить javascript вызывать действие Rails с параметрами.
  • Запросить базу данных rails (таблица projectHours).
  • Rails возвращает ответ.
  • Javascript обновляет старшие диаграммы и отображает информацию, хранящуюся в таблице projectHours.

Так что мой вопрос Что делать, если я хочу использоватьинформация из моей базы данных?

Две из следующих моделей

Effort.rb

class Effort < ActiveRecord::Base              
  belongs_to :project_task
  belongs_to :user
end

Users.rb

class User < ActiveRecord::Base

  has_many :projects
  has_many :efforts

Еще одно замечание, я думаю, что в контроллере моих усилий мне может понадобиться добавить некоторую форму действия рендеринга

     rails reponds_to do |f| f.json 
    { render :json => some_hash
} 
      end

1 Ответ

9 голосов
/ 24 августа 2011

Вы можете использовать функцию get jQuery для отправки запроса GET в ваше приложение rails, например, так:

$.get("/efforts/24", { name: "John", time: "2pm" } );

А в вашем контроллере вы можете сделать что-то вроде

def show
  @effort = Effort.find(params[:id])
  # or find by some of the name of time params

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

В зависимости ото том, как вы хотите визуализировать результаты, вы можете либо разрешить javascript обрабатывать ajax: success, добавив к исходному jQuery get

$.get("/efforts/24", { name: "John", time: "2pm" } ).success(function(data) {
  alert(data)
  // Or do whatever you want :)
});

, либо вы можете изменить response_to на

respond_to do |f|
  format.html { render :nothing => true }
  format.js
end

И создайте show.js.erb в директории вашего приложения / views / усилия.В этом файле вы можете использовать отвеченный объект

$('body').html("<h1><%= escape_javaScript(@effort.title) %></h1>").append("
<%=escape_javaScript(@effort.content) %>");

Некоторые хорошие уроки

Rails и jQuery jQuery GET

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...