2012-07-25 93 views
0

在我的表单中我使用:基于这个条件我想在我的模型来验证 <%= 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验证?

+0

为了吸引更多的答案,你应该添加一个对应于该语言的标签你正在使用的工具。你可以通过[编辑你的问题](http://stackoverflow.com/posts/11646348/edit)并在编辑页面底部添加标签来实现。 – assylias 2012-07-25 09:15:47

+0

谢谢。我做到了。 – 2012-07-25 09:24:18

回答

0

使用attr_accessor帮手模型

attr_accessor :formtemplate 

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

如果您在您的视图中使用form_for然后使用表单对象

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

我认为那就是我想要的。但是当我使用form.hidden_​​field时,我得到了:未定义的局部变量或方法'form'for#<#:0xb55d0e98>。正如你正确地认为我是在form_for。 – 2012-07-25 10:33:08

+0

也许你正在使用不同的名称'<%form_for .... do | form | %>' – Arun 2012-07-25 10:35:00

+0

在之前的评论中我使用'form'。你可能在那里使用不同的名字。所以用这个名字替换'form'。 – Arun 2012-07-25 10:44:18

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? 
+0

我有不同的使用不同字段的formpartials。我使用hidden_​​field来确定用户来自哪里,并希望相应地进行验证。我不知道new_record?并会研究它。但我不认为这是我需要的,在这里。 – 2012-07-25 10:08:56