基于hidden_​​field_tag的条件验证

时间:2012-07-25 09:10:43

标签: ruby-on-rails validation conditional

在我的表格中,我使用:         <%= hidden_field_tag :formtemplate, "newuser" %>

基于这种情况,我想在我的模型中验证:

    validates_format_of :email, :supervisor, :with => /^([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})$/i, :message => "Adresse überprüfen.", :if => :newuser_formtemplate?

这是newuser_formtemplate?

def newuser_formtemplate?
    newuser_formtemplate = "newuser"
    newuser_formtemplate == "newuser"
end

我如何根据hidden_​​_field_tag进行更改以使其验证?

2 个答案:

答案 0 :(得分:0)

使用new_record怎么样?来自activerecord的助手,而不是使用隐藏字段

http://api.rubyonrails.org/classes/ActiveRecord/Persistence.html#method-i-new_record-3F

validates_format_of :email, :supervisor, :with => /^([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})$/i, :message => "Adresse überprüfen.", :if => :new_record?

答案 1 :(得分:0)

在模型中使用attr_accessor

attr_accessor :formtemplate

def newuser_formtemplate?
    newuser_formtemplate = self.formtemplate
    newuser_formtemplate == "newuser"
end

如果您在视图中使用form_for,请使用表单对象

<%= form.hidden_field :formtemplate, "newuser" %>