[英]How to validate presence of drop down list in Rails
我想知道如何驗證用戶選擇了一個值。
我的collection_select
是:
= f.collection_select :person_id, @employee, :id, :fullName, {prompt: "Select employee"}, {class: "form-control"}
我會用:
validates :person, :presence => true
這可確保所選的person_id
不僅存在,而且還屬於現有Person
。
請注意,如果有錯誤,則會在:person
而不是person_id
上添加錯誤。 根據您呈現驗證錯誤的方式,您必須檢查如下錯誤: object.errors[:person]
。
如果要在person_id
字段旁邊顯示錯誤,但無法更新視圖,則可能需要使用自定義驗證來檢查person
,但會向person_id
添加錯誤:
validate :person_existing
private
def person_existing
errors.add(:person_id, :missing) if person.blank?
end
對於一般的視圖測試,我會針對從控制器操作返回的HTML編寫測試。 這樣做的好處就是不進行瀏覽器內測試(即您不必使用網絡驅動程序/無頭瀏覽器),並且由於單個瀏覽器可以正確呈現您的HTML,因此只需確保您的測試更簡單控制器操作返回的HTML是正確的。
如果你想驗證這一點,當用戶選擇一個給定的項目時,它已經被選中......那真的由瀏覽器來完成這項工作,所以我不知道你是否真的想要測試它。 但是,您應該能夠檢查標簽上的selected
屬性( 請參閱此處 )
也就是說,一般來說,如果這確實是你想要的,那么不要對視圖測試過於瘋狂。 該視圖是大多數應用程序的一部分,它們經常變化,並且非常脆弱。 您可能會發現自己在測試套件中經常追逐視圖更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.