ruby-on-rails – 对通过浏览器提交的参数进行常量化是不好的做
发布时间:2020-12-16 23:10:54 所属栏目:百科 来源:网络整理
导读:我有一个单表继承设置,我有一个控制器(我觉得有多个将是重复的).但是,对于某些方法,我想调用模型的子类.我想我可以让浏览器发送一个参数,我会写一个case语句.就像是: case @model[:type]when "A" @results = Subclass1.search(params[:term])when "B" @resu
我有一个单表继承设置,我有一个控制器(我觉得有多个将是重复的).但是,对于某些方法,我想调用模型的子类.我想我可以让浏览器发送一个参数,我会写一个case语句.就像是:
case @model[:type] when "A" @results = Subclass1.search(params[:term]) when "B" @results = Subclass2.search(params[:term]) ... end 或者,我了解到Ruby,它的所有技巧都可以用字符串创建一个模型.就像是: @results = params[:model].constantize.search(params[:term]) 我的问题:这是一种不好的做法吗?我可以想象有人偷偷摸摸可以制作一个请求,让我形成一个任意的内部对象..但我可以确认该对象是我想要的东西的子类.. 解决方法
这样做时,我喜欢用case重构它,只是为了清楚我允许的输入:
@results = case params[:model] when 'page' then Page when 'post' then Post else raise 'finger' end.search(params[:term]) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |