2015-04-02 3 views
1

Как передать переменную js (Angular) в Rails?Как передать переменную js в функцию Rails

JSON

[{"id":1,"title":"Test","selected":false,"url":"http://localhost:3000/vacancies/1.json"}] 

__

вид

%div{"ng-repeat"=>"vacancy in vacancies"} # From Angular via JSON 
    - vacancy = Vacancy.find(vacancy.id) # I need to get a record here 

У меня есть эта ошибка undefined method id for nil:NilClass

вакансий массив беспокоит штраф

Если это невозможно, возможно, есть другой способ?

ответ

0

В результате вы пытаетесь достичь, это не невозможно, но есть две вещи, которые выключены это одна вещь, которая с Вашим нынешним подходом:

  • Вы не можете выполнить ActiveRecord запрос (т.е. Vacancy.find(...)) из шаблона представления. Это действие обычно выполняется из контроллера.Всего судорога мозга с моей стороны - это, безусловно, можно: P

  • Вы пытаетесь смешать с Угловые областей интерпретируемого кода Ruby. Причина, по которой вы получаете исключение nil:NilClass, заключается в том, что в рамках этого кода Ruby нет определенной переменной «вакансия», даже если она определена в области Angular.

, как вы могли бы достичь извлечения объектов вакансии через API слой, созданный для обмена данных между базами данных Rails бэкэндом и вашим AngularJS интерфейсом. Процесс может выглядеть примерно так:

  • Определите выделенные маршруты для вашего api в маршрутах Rails.
  • Настройте угловой контроллер, который запускает запрос GET на ваш конкретный маршрут API.
  • После того, как этот маршрут попал, ваше конкретное действие контроллера Rails запускается, что позволяет извлекать объекты Vacancy и возвращать ответ JSON.
  • Затем ваш Угловой код может обрабатывать предоставленный ответ, чтобы назначить возвращаемым вакансиям объект JSON на $scope.vacancies.
  • Тогда вы можете сделать ng-repeat на свой взгляд, и у вас будут полные объекты вакансий в вашей коллекции vacancies, без необходимости приносить их в отдельный запрос.

Я думаю, что this article может дать вам более четкий пример для работы.

Существует достаточно информации, чтобы охватить тему интеграции Rails с AngularJS, и я знаю, что вы не просили об этом конкретно, но эта книга очень хорошо описывает основы интеграции Rails и Angular. AngularJS + Rails.

+1

Фактически я могу выполнить запрос из шаблона вида. Он работает все :) Спасибо за ссылки. –

+0

Это не проблема! Надеюсь, это было полезно! Я отредактировал свой ответ, чтобы вычеркнуть неправильный первый маркер - не знаю, почему я написал, что это не может быть сделано: P Спасибо за обратную связь! – Zoran

Смежные вопросы