我有一个表单,它使用嵌套的地址创建一个新属性。问题是没有对“地址”进行验证。当我把所有表格都留空时。这就像系统从不读取地址模型验证,我甚至可以创建一个新属性而不填写地址。
我有以下型号:
property.rb:
class Property < ApplicationRecord
has_one :address
accepts_nested_attributes_for :address
end
address.rb:
class Address < ApplicationRecord
belongs_to :property
validates :state, :city, presence: true
end
property_controller.rb:
def new
@property = Property.new
@property.build_address
end
def create
@property = current_user.properties.build(property_params)
respond_to do |format|
if @property.save
format.html { redirect_to @property, notice: 'Property was successfully created.' }
else
format.html {
@property.build_address #nedded to show the address inputs again
render :new }
end
end
end
答案 0 :(得分:0)
仔细检查代码我发现如果我发送至少一个参数作为嵌套表单(例如:city)并从@property.build_address
操作中删除create
,则一切正常。