【问题标题】:Ruby on rails. Controller params pre-processing红宝石在铁轨上。控制器参数预处理
【发布时间】:2015-11-19 16:12:55
【问题描述】:

我在 Rails 4 上有一个 ruby​​ 控制器,我需要在请求处理期间预处理它的参数。

我收到参数:

{"_json"=>[{"date"=>"9/15/2014", "name"="James"},{"date"=>"2/11/2014","name"=>"John"}]}

我需要遍历所有 json 数组元素并通过添加“用户”后修复来更新名称参数。所以,最后我的 json 应该是:

[{"date"=>"9/15/2014", "name"="James **User**"},{"date"=>"2/11/2014","name"=>"John **User**"}]

我怎样才能在我的控制器中做到这一点?

【问题讨论】:

  • 您可以使用before_filter 并将您的逻辑放在修改参数的特定方法中
  • 你能帮我解释一下这个逻辑吗?我是红宝石新手
  • 对于以后阅读本文的任何人,您都可以使用此方法返回和转换参数值:api.rubyonrails.org/v6.1.2.1/classes/ActionController/…

标签: ruby-on-rails


【解决方案1】:

你可以试试这个方法

params = {"_json"=>[{"date"=>"9/15/2014", "name"=>"James"},{"date"=>"2/11/2014","name"=>"John"}]}

然后使用 using 修改参数

params["json"].each { |h| h["name"] = "#{h['name']} **User**" }
puts params["_json"]

如果你想对每个动作进行预处理,那么使用before_filter

【讨论】:

  • 谢谢!我可以用实际日期替换日期字符串以使用这种方式将其传递到我的模型中吗?
  • 您可以将日期替换为名称。
猜你喜欢
  • 1970-01-01
  • 2011-07-13
  • 2016-01-07
  • 1970-01-01
  • 1970-01-01
  • 2016-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多