簡體   English   中英

如何在Rails中驗證下拉列表的存在

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM