0
我正在創建具有附件的對象。我通過分裂一個真正的領域來僞造領域(可能是我的問題的真正根源)。另外,這些做工精細,但我的驗證出現運行我的控制器邏輯不前,當我附上一個文件,我最終得到看起來像這樣的錯誤:爲什麼我的驗證正在運行?
undefined method `match` for nil:Nil at line ...
是驗證通過回形針觸發?我如何關閉它,或者在驗證運行之前讓我自己的邏輯運行?
我的模型看起來是這樣的:
attr_accessible :zipcode
has_attached_file :attachment
#this is the line referred to by the error message
validates :zipcode, format: { with: /a_meaningful_regex_here/i}
def initialize
zipcode = '-'
end
def set_zipcode(params={})
zipcode = "#{params[:zipcode1]}-#{params[:zipcode2]}"
end
def zipcode1
zipcode.split('-')[0]
end
def zipcode2
zipcode.split('-')[1]
end
我的形式如下:
<%= form_for @foo do |f| %>
<%= f.file_field :attachment %>
<%= text_field_tag :zipcode1,@foo.zipcode1%> -
<%= text_field_tag :zipcode2,@foo.zipcode2%>
<%= f.submit %>
<% end %>
我的控制器看起來是這樣的:
def create
@foo = Foo.new(params[:foo])
@foo.set_zipcode(params)
if @foo.save
redirect_to @foo
else
render action: 'new'
end
end
您是否嘗試在控制器中記錄某些內容,以確保它在驗證之前不會被處理?你確定這個正則表達式應該是這樣寫的嗎?如果不是,請嘗試'/ \ Aa_meaningful_regex_here \ z/i',因爲它似乎是問題來自這裏,如果問題來自於郵政編碼的內容,那麼您將不會有一個無對象,因爲您使用「 - 」初始化它。 。所以我認爲它更可能與正則表達式或其周圍的語法。 – Raindal