我的表单中有一个集合选择:
<div class="field">
<%= f.label :area %>
<%= f.collection_select(:area_id, Area.all, :id, :name, include_blank: "No area.") %>
我的模型验证不需要区域。
据我所知,通过使用include_blank可以让我选择nil。但是我得到验证错误&#34;区域必须存在&#34;
编辑:
以下是模型中的重要代码:
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
答案 0 :(得分:3)
除非您指定 optional:true ,否则Rails 5会强制您设置所有 belongs_to 关联。添加它是为了防止数据不一致,因此,如果您希望它的行为与之前的rails版本一样,您只需将关联更改为:
belongs_to :area, optional: true
答案 1 :(得分:1)
在Rails 5中,默认情况下validate设置为true。有关更多详细信息,请查看:belongs_to文档中的可选和:必需选项。