Rails[Cocoon]: връзката за добавяне продължава въпреки премахнато поле?

Аз съм на Rails 4, използвайки най-новия скъпоценен камък Cocoon. Всичко работи перфектно; единственият ми проблем е, че когато премахна вложени полета, връзката за добавяне остава. Както в README, връзката за добавяне е в _form, докато връзката за премахване е в _[model]_fields. Използвам SimpleForm:

_form.html.erb

<%= simple_form_for(@group) do |f| %>
  <%= f.input :name, :label_html => { class: "col-md-2" }, :input_html => { class: "col-md-10" } %>
  <div id="group_names">
    <%= f.simple_fields_for :group_names do |subgroup| %>
      <%= render 'group_name_fields', :f => subgroup %>
      <div class="links">
        <%= link_to_add_association 'add', f, :group_names %>
      </div>
    <% end %>
  </div>
<% end %>

_group_names_fields.html.erb

<div class="nested-fields">
  <%= f.input :subgroup, :label_html => { class: "col-md-2" }, :input_html => { class: "col-md-10" }, :required => false %>
  <%= link_to_remove_association "remove", f %>
</div>

Какво пропуснах? Забележка: Не ми липсва бутон за изпращане, подаването работи както и изтриването. Просто връзката за добавяне не изчезва. За нещо толкова просто съм сигурен, че просто съм направил нещо нередно, но изглежда не мога да го забележа. В противен случай мисля да опаковам връзката за добавяне в оператор if, но не съм сигурен какво може да бъде това условие.

Благодаря!


person Kei    schedule 10.07.2015    source източник


Отговори (1)


Отговор: <%= link_to_add_association 'add', f, :group_names %> трябва да е извън <%= f.simple_fields_for :group_names do |subgroup| %> цикъл . Също така реших моя нов текущ проблем, така че бонус!

Това е кодът, посочен в пашкула README в haml:

= simple_form_for @project do |f|
  = f.input :name
  = f.input :description
  %h3 Tasks
  #tasks
    = f.simple_fields_for :tasks do |task|
      = render 'task_fields', :f => task
    .links
      = link_to_add_association 'add task', f, :tasks
  = f.submit

Не знам haml, така че не знам дали това е просто нещо haml, но .links всъщност не е в цикъла f.simple_fields_for в крайна сметка.

person Kei    schedule 13.07.2015
comment
Да, това е haml нещо. Haml не е толкова труден, imho е доста очевиден, чете се повече като код и отстъпът има значение. Същото вдлъбнатина е същото ниво. Документацията за haml е лесна за търсене, но имаме и ERB примери в уикито за упоритите. - person nathanvda; 15.07.2015
comment
сега, като го гледам, изглежда, че трябваше да е очевидно... благодаря! - person Kei; 16.07.2015