我正在使用simple_form和nested_form宝石。simple_form验证显示为父窗体,但不显示嵌套窗体中的关联。
视图
#_form.html.erb
<%= simple_nested_form_for( @repair ) do |r| %>
....
<%= r.simple_fields_for :repair_items do |f| %>
<%= f.association :repair_type, label_method: :repair_type_label, value_method: :id, include_blank: true, label: "Type"%>模型
#repair_item.rb
validates :repair_type_id, :presence => true控制器
#repairs_controller.rb
def create
@repair = Repair.new(params[:repair])
if @repair.save
redirect_to(repairs_path, :notice => 'Repair Created.')
else
@repair.repair_items.new(params[:repair][:repair_items_attributes]["0"].except(:_destroy))
render :new
end
end编辑
我没有提到嵌套表单中的关联是使用select2 js插件显示的。这可能是Rails验证没有显示出来的一个因素?
发布于 2013-12-06 06:41:11
在您的模型中添加inverse_of
class Repair < ActiveRecord::base
has_many :repair_types, inverse_of: :repair
end
class RepairType < ActiveRecord::base
belongs_to :repair, inverse_of: repair_types
endhttps://stackoverflow.com/questions/20417268
复制相似问题