2012-07-25 101 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