我想在Ruby中嵌入JS.erb文件,我想要能夠訪問@user對象及其所有關係。如何在JavaScript中嵌入Ruby對象?
- 我不想轉換爲JSON對象。我希望ERB在服務器端預編譯 。
- 我不想在視圖中迭代,但在JS文件中。 我應該如何構建我的控制器/視圖/ js.erb文件來使這個 工作?
控制器 - user_controller
class UsersController < ApplicationController
def index
end
end
型號 - user.rb
class User < ActiveRecord::Base
attr_accessible :email, :first_name, :last_name
has_many :qualification_rs
end
視圖 - Users.html.erb是空白的(我想從JS純粹讓我的代碼)
<html>
<body>
</body>
</html>
Javascript資產 - users.js.erb
$(document).ready(function(){
<% @users.each do |user| %>
$('body').append(<% = user.first_name%>);
<%end%>
});
以下錯誤出現
「未定義的方法`每個」爲無:NilClass」 即,它不識別在JS文件@users。 (它在包含javascript標籤的user.html.erb文件中執行,我還有什麼辦法讓實例對象在js文件中被識別出來?
我得到以下錯誤信息,如果我這樣做 - 我的錯誤是 – Venomoustoad
「未定義的方法'每個'爲零:NilClass」 即不是我沒有在HTML上運行erb文件,但在js文件中的資產夾。它不能識別js文件中的@users。 (它在包含javascript標籤的user.html.erb文件中執行,我還需要做什麼才能使實例對象在js文件中被識別? – Venomoustoad
您需要在控制器中實例化它,比如'@ user = User.find(1)'例如 – Antoine