如何将js(Angular)变量传递给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 :(得分:0)
你试图实现的结果并非不可能,但是是两件关闭的东西是你现有方法的一件事:
您无法在视图模板中执行ActiveRecord查询(即 我的全脑抽筋 - 这绝对可能:P Vacancy.find(...)
)。此操作通常在控制器内执行。
您正在尝试将Angular范围与解释的Ruby代码混合使用。你得到nil:NilClass
异常的原因是因为在Ruby代码的范围内,没有定义的“空缺”变量,即使它是在Angular的范围内定义的。
实现Vacancy对象检索的方法是通过API层设置,以便在Rails数据库后端和AngularJS前端之间进行通信。该过程可能类似于:
$scope.vacancies
。ng-repeat
,并在vacancies
集合中拥有完整的Vacancy对象,而无需将每个对象作为单独的请求获取。我认为this article可以为您提供更清晰的示例。
关于将Rails与AngularJS集成的主题有大量的信息,我知道你没有具体要求这个,但是本书涵盖了很好地集成Rails和Angular的基础知识。 AngularJS + Rails