ROR:带有include_blank的集合选择赢了<n允许为零

时间:2016-07-22 21:18:27

标签: ruby-on-rails ruby forms collection-select

我的表单中有一个集合选择:

<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

2 个答案:

答案 0 :(得分:3)

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

belongs_to :area, optional: true

答案 1 :(得分:1)

在Rails 5中,默认情况下validate设置为true。有关更多详细信息,请查看:belongs_to文档中的可选和:必需选项。