如何在JavaScript中嵌入Ruby对象?
我正在尝试将Ruby嵌入到JS.erb文件中,在这里我希望能够访问@user对象及其所有关系如何在JavaScript中嵌入Ruby对象?,javascript,jquery,ruby-on-rails,erb,Javascript,Jquery,Ruby On Rails,Erb,我正在尝试将Ruby嵌入到JS.erb文件中,在这里我希望能够访问@user对象及其所有关系 我不想转换为JSON对象。我希望雇员再培训局 在服务器端预编译 我不想在视图中迭代,而是在JS文件中迭代。应该怎么做 我正在构建我的controller/view/js.erb文件以实现这一点 工作 控制器-用户控制器 class UsersController < ApplicationController def index end end class Use
class UsersController < ApplicationController
def index
end
end
class UsersController
Model-user.rb
class User < ActiveRecord::Base
attr_accessible :email, :first_name, :last_name
has_many :qualification_rs
end
class用户
View-Users.html.erb为空(我只想从JS获取我的代码)
Javascript资产-users.js.erb
$(document).ready(function(){
<% @users.each do |user| %>
$('body').append(<% = user.first_name%>);
<%end%>
});
$(文档).ready(函数(){
$('body').append();
});
出现以下错误
“nil:NilClass的未定义方法'each'” i、 e.它无法识别js文件中的@users。(它存在于user.html.erb文件中,我从该文件中包含javascript标记。我还要做些什么才能在js文件中识别实例对象?使用
(以及ruby/rails文档)
$(文档).ready(函数(){
$('body')。追加(“”);
});
检查是否有@users
存在或与以下内容不同
<% @users.each do |user| %>
$('body').append("<p><%= user.first_name %></p>");
<% end if @users%>
$('body')。追加(“”);
我不确定这个问题是否太清楚——这是最终的解决方案
最后,我不得不在标记中包含Users.html.erb中的JS片段,而不是将JS作为单独的文件包含在assets/public中
@users变量只能在views文件夹的HTML文件中直接访问,不能直接从assets目录访问。“nil:NilClass的未定义方法`each'”即,我不是在HTML上运行erb文件,而是在assets文件夹的js文件上运行。它不能识别js文件中的@users。(它在user.html.erb文件中包含javascript标记。我还要做什么才能在js文件中识别实例对象?您需要在控制器中实例化它,例如
@user=user.find(1)
)
$(document).ready(function(){
<% @users.each do |user| %>
$('body').append("<p><%= user.first_name %></p>");
<%end%>
});
<% @users.each do |user| %>
$('body').append("<p><%= user.first_name %></p>");
<% end if @users%>