Rails - Cocoon - 简单形式 - 不呈现
Rails - Cocoon - Simple Form - does not render
我正在为新订单使用 Cocoon 和 SimpleForm,这将有多个 OrderItems。
我已经像这样安装了 gem:
gem "cocoon"
并添加到 application.js :
//= require cocoon
模型配置如下:
class Order < ActiveRecord::Base
#Associations
has_many :order_items
accepts_nested_attributes_for :order_items, reject_if: :all_blank, allow_destroy: true
end
class OrderItem < ActiveRecord::Base
#Associations
belongs_to :order
belongs_to :item
end
_form.html.slim 对于订单是:
= simple_form_for(@order) do |f|
= f.error_notification
.row
.col-md-6
.form-inputs
= f.association :branch
= f.association :client
.col-md-6
= f.simple_fields_for :order_items do |order_item|
= render 'order_item_fields', f: order_item
.links
= link_to_add_association 'add order_item', f, :order_items
.form-actions
= f.button :submit
部分 _order_items_fields.html.slim 是:
.nested_fields
= f.input :item_id
= f.input :dicount_percentage
= f.input :fulfilment_type
= f.input :promised_delivery_date
= f.input :actual_delivery_date
= f.input :notes
= link_to_remove_association "remove order item", f
当我运行orders/new时,除了cocoon应该显示的字段外,所有字段都显示了。
我已经按照 github 页面上的说明完成了所有操作。
可能是什么问题?
我也检查过,正在加载cocoon JS文件。
您的表单为空,因为您的字段应嵌套在 simple_form
下
= simple_form_for(@order) do |f|
= f.error_notification
.row
.col-md-6
.form-inputs
= f.association :branch
= f.association :client
我不太了解 HAML,但我相信您需要将 .links
与 = f.simple_fields_for :order_items do |order_item|
对齐,因为 HAML 依赖于空格。
使用 this simple form example 从 Cocoon github
链接
我正在为新订单使用 Cocoon 和 SimpleForm,这将有多个 OrderItems。
我已经像这样安装了 gem:
gem "cocoon"
并添加到 application.js :
//= require cocoon
模型配置如下:
class Order < ActiveRecord::Base
#Associations
has_many :order_items
accepts_nested_attributes_for :order_items, reject_if: :all_blank, allow_destroy: true
end
class OrderItem < ActiveRecord::Base
#Associations
belongs_to :order
belongs_to :item
end
_form.html.slim 对于订单是:
= simple_form_for(@order) do |f|
= f.error_notification
.row
.col-md-6
.form-inputs
= f.association :branch
= f.association :client
.col-md-6
= f.simple_fields_for :order_items do |order_item|
= render 'order_item_fields', f: order_item
.links
= link_to_add_association 'add order_item', f, :order_items
.form-actions
= f.button :submit
部分 _order_items_fields.html.slim 是:
.nested_fields
= f.input :item_id
= f.input :dicount_percentage
= f.input :fulfilment_type
= f.input :promised_delivery_date
= f.input :actual_delivery_date
= f.input :notes
= link_to_remove_association "remove order item", f
当我运行orders/new时,除了cocoon应该显示的字段外,所有字段都显示了。
我已经按照 github 页面上的说明完成了所有操作。
可能是什么问题?
我也检查过,正在加载cocoon JS文件。
您的表单为空,因为您的字段应嵌套在 simple_form
= simple_form_for(@order) do |f|
= f.error_notification
.row
.col-md-6
.form-inputs
= f.association :branch
= f.association :client
我不太了解 HAML,但我相信您需要将 .links
与 = f.simple_fields_for :order_items do |order_item|
对齐,因为 HAML 依赖于空格。
使用 this simple form example 从 Cocoon github
链接