#ruby-on-rails #forms #nested #field #apache-cocoon
#ruby-на-рельсах #формы #вложенный #поле #apache-cocoon
Вопрос:
Я установил cocoon и добавил все необходимые изменения в соответствии с приведенными здесь примерами: https://github.com/nathanvda/cocoon/wiki/ERB-examples
Но по какой-то причине я ничего не могу увидеть внутри своего тела.
просмотры/order_items/_order_item_fields.html.erb:
<div class="nested-fields">
<div class="field">
<%= f.label :material %>
TEST
</div>
<%= link_to_remove_association "remove order_item", f %>
</div>
просмотры/заказы/new.html.erb:
<div class="container text-center mt-4">
<%= form_for @order do |f| %>
<div class="container">
<div class="row">
<h2>New Order</h2>
</div>
</div>
<div id="order_items">
<%= f.fields_for :order_items do |order_item| %>
<%= render "order_items/order_item_fields", f: order_item %>
<% end %>
<div class="links">
<%= link_to_add_association "add order_item", f, :order_items %>
</div>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
</div>
Порядок.рб:
class Order < ApplicationRecord
belongs_to :user, optional: true
has_many :order_items
accepts_nested_attributes_for :order_items, reject_if: :all_blank, allow_destroy: true
end
Я также получаю сообщение об ошибке отсутствующего шаблона:
Missing partial orders/_order_item_fields, application/_order_item_fields with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :coffee, :jbuilder]}.
Я полагаю, что если я пытаюсь отобразить частичное изображение из другой папки представления, то добавление папки перед частичным именем должно сработать: <%= render "order_items/order_item_fields", f: order_item %>
Если я перейду _order_item_fields.html.erb
из views/order_items
своего каталога в свой views/orders
каталог, страница будет отображаться, но я по-прежнему ничего не вижу внутри order_item_fields
фрагмента.
Комментарии:
1. Вы создаете поле в своем контроллере заказов? ie
@order.order_items.build
2. Пожалуйста, определите «ничего не вижу внутри
order_item_fields
частичного», потому что частичное содержит только метку и сообщение «TEST»? Но вы их тоже не видите? Видите ли вы изменение HTML-кода? Видите ли вы ошибку в консоли javascript в браузере (другими словами: работает ли javascript?).