我在将变量传递给构建器文件以进行xml生成时遇到问题,并且认为我可能正在接近完全错误的问题,但这是我当前的尝试:
<% @x = [1000, 2000, 3000] %>
<%str_xml = render :file=>"filepath/file", :locals=>{:x => x} %>
然后在file.builder里面我尝试访问x,但继续获取
undefined local variable or method `x'
我尝试在构建器中访问它
xml.dataset(:seriesName => 'Bogus') do
for element in x
xml.set(:value=>element)
end
end
只要我不尝试访问x变量,代码就可以正常工作。最终,x将成为两个将转换为时间戳的日期,并传递给xml构建器以在数据库查询中使用,以确定要显示的数据的时间范围。我对铁轨非常环保,所以我完全乐于接受这个想法。任何和所有的帮助表示赞赏!
谢谢
答案 0 :(得分:2)
正如@Devin评论'x'应为'@x'。我还建议不要在视图中设置变量,尝试使用变量来显示控制器的相应方法中的数据集(并尽可能将任何更改数据的操作作为模型的一部分)。
# app/controllers/my_controller.rb
class MyController < ApplicationController
def index
@x = [Date.new(2010, 8, 5).to_time.to_i, DateTime.new(2011, 8, 5).to_time.to_i]
end
end
# app/views/my/index.erb
<%str_xml = render :file=>"filepath/file", :locals=>{:x => @x} %>