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
我的表格中有一个集合 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