簡體   English   中英

在Ruby on Rails 4.x中正確嵌入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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM