我在Rails中有一个HTML表单,如
<form name="input" action="jump">
Title: <input type="text" name="title">
<input type="button" value="Submit">
</form>
我希望title
成为必填字段(即用户不能将其留空),我想在Rails jump
控制器中验证。请注意,title
不是模型中的字段;它只是一个将在控制器内处理的表单字段。
如何进行验证,并优雅地向用户显示错误?
答案 0 :(得分:5)
您可以使用活动模型来处理事情:
class SomeModel&lt;&lt;加载ActiveModel
#some Model
attr_accessor :title
validates_presence_of :title
端
这样做的好处是可以将验证和处理错误显示在Rails上。
另一种方法是完全在控制器端处理事情:
if params[:title].present?
...#do something
else
...#do something else
然而,这不是优雅的方法。如果你走这条路,我建议创建一个ruby对象,至少将逻辑移出控制器。
答案 1 :(得分:4)
你实际上可以使用HTML5技术来应用
<input type="text" name="usrname" required="required" />
旁边,您可以使用gem'客户端验证' github在这里 https://github.com/bcardarella/client_side_validations
我建议你使用宝石...非常棒:D
答案 2 :(得分:3)
你有2个选项,你可以在前端和后端进行验证,这两个选项都很好:
前端
<%= f.text_field ..other attributes... required: true %>
后端
你有两个选择
在您的模型中
validates :title, :presence
或在您的控制器中,您可以查看
if params[:title].present?
#your logic
end