【发布时间】:2016-11-26 21:14:21
【问题描述】:
我的表单中有一个集合选择:
<div class="field">
<%= f.label :area %>
<%= f.collection_select(:area_id, Area.all, :id, :name, include_blank: "No area.") %>
而且我的模型验证对区域没有要求。
据我了解,使用 include_blank 可以让我选择 nil。但是我收到一个验证错误“区域必须存在”
编辑:
这是模型中的重要代码:
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
【问题讨论】:
-
请将您的模型添加到问题中
-
你在使用 rails 5 吗?我记得在 rails 5 中需要使用 belongs_to 关联,除非你指定 required: false 或类似的东西,我不记得了。
-
我正在使用 Rails 5
-
好的,所以,解决方法是指定belongs_to :area,可选:true,以防你想拥有那种数据。添加它是为了防止数据不一致。
-
在 Rails 5 中
belongs_to关联要求关联对象存在。请参阅discussion about this new feature。
标签: ruby-on-rails ruby forms collection-select