ROR:集合 select with with include_blank 不允许 nil

ROR: Collection select with with include_blank won't allow nil

我的表格中有一个集合 select:

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

而且我的模型验证对面积没有要求。

据我了解,使用 include_blank 将允许我选择 nil。但是我收到验证错误 "Area must exist"

编辑:

模型中的重要代码如下:

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中validate默认设置为true。请查看 belongs_to 文档中的 :optional 和 :required 选项以获取更多详细信息。

Rails 5 强制您设置所有 belongs_to 关联,除非您指定 optional: true。添加它是为了防止数据不一致,因此,如果您希望它的行为像以前的 rails 版本一样,您只需将关联更改为:

belongs_to :area, optional: true