循环遍历数组并传递键以实现功能

时间:2016-04-12 20:41:58

标签: ruby-on-rails ruby

我试图将events_sections数组中的每个元素传递给一个函数,我一直都是零,我不确定我在这里做错了什么。

event_sections = ["a_full","b_full","c_full","e_full","h_full","i_full","k_full","z_full"]
    event_sections.each do |key|
       @events[key] = Zlib.inflate(Events_Full_Sections.first."#{key}")
    end 
    render json: @events 

你的帮助很高兴

1 个答案:

答案 0 :(得分:0)

我认为您之前没有定义@events。因此,在循环之前用该变量定义一个空数组:

@events = []

此外,如果Events_Full_Sections是模型,我们不会像您尝试的那样调用插值方法。我们使用send方法来调用带有str / symbol名称的方法。像这样:

event_sections = ["a_full","b_full","c_full","e_full","h_full","i_full","k_full","z_full"]
@events = []

event_sections.each do |key|
   @events[key] = Zlib.inflate(Events_Full_Sections.first.send(key))
end 
render json: @events 

我不确定你的数据库结构,所以我认为它会起作用。

您也可以将Events_Full_Sections.first保存在变量外部循环中,以避免每次都调用db。