Ruby on Rails : 如何将值传递给 javascript

Ruby on Rails : how to pass value to javascript

我想将值从 <%= controller.controller_name %> <%= controller.action_name %> 传递到 javascript 如下

return (document.body.className += " load-done 
            '<%= controller.controller_name %>' '<%= controller.action_name %>'
        ");

但它不起作用,任何人都可以对此提出建议吗?

问题缺少信息,所以我猜您想将一些数据直接从控制器传递到您的 JS 代码。有两种“正常”方法可以做到这一点。第一种是直接调用控制器作为 http 调用,return 响应作为 json。 第二种方法是将数据作为 class 变量传递,然后您可以从 html 文件的视图文件夹中访问它。在这里,您可以将变量传递给 div、span 或其他任何内容,并通过在 JS 中找到 html 标记来在 JS 中访问它,如下所示:

# controllers: 

def some_controller_method
  @temp = 'example data, could be any type'
end

# views
<%= content_tag :div, class: "some_class", data: {temp: @temp} do %>
<% end %>

# JS
$('.some_class').data('temp')