我的表单中有一个收藏选择:

<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强制您将所有属于关联的项设置为,除非您指定了optional:true添加它是为了防止数据不一致,因此,如果希望它的行为类似于以前的rails版本,只需将关联更改为:

belongs_to :area, optional: true

关于ruby-on-rails - ROR:带有include_blank的选择集合不允许为零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38535383/

10-15 20:34