需要表单中的字段

时间:2012-11-12 00:27:42

标签: ruby-on-rails

我在Rails中有一个HTML表单,如

<form name="input" action="jump">
  Title: <input type="text" name="title"> 
  <input type="button" value="Submit">
</form> 

我希望title成为必填字段(即用户不能将其留空),我想在Rails jump控制器中验证。请注意,title不是模型中的字段;它只是一个将在控制器内处理的表单字段。

如何进行验证,并优雅地向用户显示错误?

3 个答案:

答案 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