ruby代码中的Javascript变量

Javascript variables in ruby code

本文关键字:Javascript 变量 代码 ruby      更新时间:2023-09-26

在我的RoR项目中,我得到了html页面,在那里我用javascript更改div的背景图像。Javascript函数向我发送索引,我想用这个索引来获取ruby数组的元素。

查看我的代码

function drawNewProject (index){
  console.log(<%= 'index' %>)
  <% index = 'index'  %>
  <% @existProjects = Admin::Project.order('weight') %>
  <% @existProject = @existProjects[index] %>
  var image = document.getElementById('block_one')
  image.style.backgroundImage="url('<%=  @existProject.image(:large) %>')";
}

但是这条线

<% @existProject = @existProjects[index] %>

给我错误

no implicit conversion of String into Integer

你知道如何改正吗?Thnx。

您必须考虑<%= erb %>块在发送到浏览器之前在服务器中执行,一旦到达,javascript就会运行。

您的浏览器不知道ruby或php或其他什么。。。它只接收html和js(不管是静态文件还是动态生成的一堆js)并运行它

这意味着在渲染时必须知道所有数据。如果您的应用程序依赖于动态数据或用户交互,那么您必须执行ajax请求,并使用正确的js返回调用,以便由浏览器运行。