2016-07-25 64 views
0

我有一个has_many关系,我想循环每个项目链接到主模型(配方上的成分)的某个字段。我试图在before_filter中这样做,所以我可以正确解析用户输入到我想要的。我如何设置do循环来获取我想要的参数如何在rails控制器参数中循环遍历属性

+0

请张贴一些数据,至少是控制器或型号代码 –

+0

我不认为你想在'before_filter'钩子中做这件事。 –

回答

2

Rails中的请求参数可通过params散列来访问。您可以使用迭代器遍历哈希。

params.each do |k,v| 
    puts "#{k}: #{v}" 
end 

至于用于解析用户的输入,我个人不会做,在一个before_filter方法。您在下面的例子中将“1 1/2”等输入转换为1.5。尝试是这样的:

ingredient.rb:

# amount :decimal (assuming this column exists on the ingredients table) 

def humanized_amount 
    amount.humanize! 
end  

def humanized_amount=(value) 
    amount = cast_humanized_value_to_decimal(value) 
end 

然后用humanized_amount为你的表单输入的属性。只是一个建议。没有一个真正的答案。

+0

好吧,那么我想只使用if检查来查找我想要的密钥并对其进行修改 – DRing

+0

是的;但是,我认为你应该重新考虑你对问题的整体解决方案。修改params散列不是一个好主意。 –

+0

我接受建议,我应该如何修改和格式化用户输入的内容以匹配我想要存储在表中的内容。例如尝试采取可能的“1 1/2”并将其转换为1.5 – DRing