我有一个动作控制器来验证来自视图的参数。
def duplicate #params to be validated params = params[:group_to_duplicate] #params have to be validated to avoid method 'find' for some reason group = Group.find(params[:id]) #validate to avoid this 'if' if group group.duplicate params notice = 'Some message' else notice = 'Some other message' end redirect_to groups_path, notice: notice end
如何验证来自视图的请求参数,例如laravel 5 enter link description here?
答案 0 :(得分:0)
在大多数情况下,您不必在控制器中验证请求参数。
模型表单验证的最佳实践(必需,唯一,长度,最大等)是在模型中定义验证即/models/group.rb,并使用表单库等as simple_form,自动处理您定义的模型验证。
例如,在您的group.rb中,您将拥有:
class Group < ActiveRecord::Base
validates :group, presence: true
end
如果您绝对需要在控制器中进行验证,请使用操作控制器过滤器:http://guides.rubyonrails.org/action_controller_overview.html#filters
参考文献:
http://guides.rubyonrails.org/active_record_validations.html https://github.com/plataformatec/simple_form
答案 1 :(得分:0)
有时候,您确实需要验证请求参数,而不是模型。
例如API。您通常需要验证给定的参数。也许您需要一个返回股票行情的API的日期范围。
报价模型是有效的,但是为了正确获取报价模型,您需要知道用户所需的范围,因为您不允许他们拥有整个报价历史记录。这样的事情。
对于搜索表单也是如此。也许您有一个表单,要求用户在搜索雇员之前输入姓氏。
在这些情况下,您可以使用表单或视图对象来帮助进行验证。 这是有关表单对象的快速文章: https://robots.thoughtbot.com/activemodel-form-objects
我也一直在看这个。我将在有空的时候试一试: https://github.com/nicolasblanco/rails_param