【发布时间】:2020-02-15 13:22:23
【问题描述】:
我有一个参数数组,我想通过在 ruby on rails 中循环数组来替换所有参数。
我在控制器中使用 before_action 作为
before_action :cost_format
这是一个参数数组。参数的格式是字符串,我想对每个参数运行一个函数并将其转换为浮点数。所以我正在循环一个数组并在每个元素上调用函数。
def cost_format
x = [params[:cost_1], params[:cost_2], params[:cost_3]]
x.each do |i|
convert_cost(i)
end
end
我有一个函数 convert_cost 如下
def convert_cost(x)
x.gsub(',', '.').to_f
end
如何循环数组以替换我的参数。?参数没有被上面的代码替换。任何提示将不胜感激。 谢谢
【问题讨论】:
-
试试
map而不是each。 -
地图也不起作用。例如 [1] pry(main)> x = 1 => 1 [2] pry(main)> y = 2 => 2 [3] pry(main)> z = 3 => 3 [4] pry(main )> a = [x, y, z] => [1, 2, 3] [5] pry(main)> a => [1, 2, 3] [6] pry(main)> a.map{ |我| i.to_s} => ["1", "2", "3"] [7] pry(main)> x => 1 这是在控制台中运行的
-
是要改变原始的
params,还是有一个变异的副本? -
我认为,正如@3limin4t0r 所建议的那样,您的问题未得到充分说明。
map,根据您在 cmets 中的示例,确实将整数转换为字符串并返回该字符串数组。它不转换x的值(不改变x)。我认为一个更完整的例子会有所帮助。
标签: ruby-on-rails arrays ruby parameters