[英]Ruby on Rails: embed ActiveRecord object into JavaScript
[英]Properly embed JavaScript variables in Ruby on Rails 4.x
我正在使用Ruby on Rails 4,我正在嘗試編寫一個需要填充服務器端數據的JavaScript。 例如,我可能有一個名為StudentsController的控件,我想從特定的類中返回所有特定的學生。 所以在我的控制器中我可能會:
def index
@students = Student.all
end
然后我在/app/assets/javascripts/
中有一個名為foo.js
,在那里我試圖通過他們的class_id
將學生class_id
。
在foo.js
$(function() {
var class_a = <%= @students.select { |s| s.class_id = 'a' }.to_json %>
var class_b = <%= @students.select { |s| s.class_id = 'b' }.to_json %>
})
問題是當我在瀏覽器方面檢查時, class_a
為null。 我假設foo.js
沒有與StudentsController
相關聯,也沒有看到@students
。 以這種方式連接JavaScript的正確方法是什么,因此我可以使用服務器端對象訪問javascript變量?
這里的一個問題就是你的文件應該被稱為foo.js.erb
來編譯ruby。
另外,我想你想這樣做:
var class_a = <%= @students.select { |s| s.class_id == 'a' }.to_json %>
(注意雙等號)
您甚至可能更好地找到控制器中的特定學生並單獨通過每個學生 - 這將是一個更好的關注點分離,並會使您的觀點保持這種邏輯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.