2016-07-22 42 views
0

我有一個集合在我的表單中選擇:ROR:款式選擇與include_blank不會讓零

<div class="field"> 
    <%= f.label :area %> 
    <%= f.collection_select(:area_id, Area.all, :id, :name, include_blank: "No area.") %> 

我的模型驗證有一個區域沒有要求。

這是我的理解是,通過使用include_blank將允許我選擇零。不過,我得到一個驗證錯誤「區域必須存在」

編輯:

下面是該模型中的重要代碼:

has_many :ratings, dependent: :destroy 
has_many :noise_ratings, dependent: :destroy 
has_many :statuses, dependent: :destroy 
has_many :checkins, dependent: :destroy 

has_and_belongs_to_many :features 

belongs_to :area 
belongs_to :campus 

validates :name, presence: true, uniqueness: { scope: :campus_id, message: "unique space for each campus." } 
validates :description, presence: true 
validates :campus_id, presence: true 
+1

請添加到模型的問題 – neydroid

+1

你使用Rails 5?,我記得閱讀belongs_to協會需要在軌道5,除非你指定required:false,或類似的東西,我不記得。 – fanta

+0

我正在使用導軌5 – Bevilacqua

回答

3

Rails 5強制您設置所有belongs_to關聯,除非您指定可選:true。它補充,以防止數據不一致,所以,如果你希望它表現得像以前軌的版本中,你只需要你的公會改成這樣:

belongs_to :area, optional: true 
1

在Rails 5驗證默認情況下設置爲true。請檢查:可選和:belongs_to文檔中的更多詳細信息。