如何在JavaScript中嵌入Ruby对象?

如何在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

我正在尝试将Ruby嵌入到JS.erb文件中,在这里我希望能够访问@user对象及其所有关系

  • 我不想转换为JSON对象。我希望雇员再培训局 在服务器端预编译
  • 我不想在视图中迭代,而是在JS文件中迭代。应该怎么做 我正在构建我的controller/view/js.erb文件以实现这一点 工作
  • 控制器-用户控制器

     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%>