2011-04-06 22 views
0

環境中工作:Rails的2.3.11 W/MySQL 5.0中Rails的validates_presence_of不是HTML格式文本區域

這裏是我的幻燈片顯示模式:

class Slideshow < ActiveRecord::Base 
    validates_presence_of :title, :description 
end 

使用控制檯,如果我跑:

Slideshow.new(:title => "", :description => "").save! 

返回:

Validation failed: Title can't be blank, Description can't be blank 

這是正確的。

然而,當我提出一個空白的HTML表單創建操作:

def create 
    @slideshow = Slideshow.new(params[:slideshow]) 
    if @slideshow.save 
    redirect_to(...) 
    else 
    render(:action => 'new') 
    end 
end 

只有:title現場驗證失敗。我已驗證參數中傳遞的內容是:

Parameters: {"commit"=>"Submit", "slideshow"=>{"title"=>"", "description"=>""}, "action"=>"create", "controller"=>"manage/slideshows"} 

爲什麼描述字段在這裏驗證失敗?

謝謝。

+0

你是如何顯示你的驗證錯誤? – Ashish 2011-04-06 05:01:30

+0

表單發佈後,我使用'f.error_messages'。 – modulaaron 2011-04-06 07:31:36

回答

0

當你提交一個空白的HTML表單創建操作,它應該在其他的創建措施,您的表單應該有這樣一行:

<%= f.error_messages%>

展示你的錯誤。

+0

我在那裏使用'f.error_messages'。發佈空白表單後,出現的唯一錯誤消息是「標題不能爲空」。 – modulaaron 2011-04-06 07:36:28

+0

表示驗證正在爲其他領域工作。你可以顯示你已經把驗證..或與你分享你的項目文件夾。 – 2011-04-06 07:43:18

0

事實證明,這是一個語法問題。它發生在一個測試服務器上,其中有兩個名稱非常相似的模型(一個是另一個的更新版本)。在測試過程中,我使用了錯誤的。我對任何不必要的頭部劃痕道歉:)