Как динамически обновлять / редактировать / удалять существующую запись в списке

новичок в rails и может использовать некоторую помощь, чтобы выяснить, как разрешить пользователям обновлять записи в списке, не покидая страницу.

В частности, у меня есть две формы на странице, где пользователи вводят информацию о своих детях.

Одна форма предназначена для добавления пользователем информации НОВОГО ребенка, чтобы создать список детей ниже. Список дочерних элементов отображает ранее введенную пользователем информацию о дочерних элементах. Однако в дочернем списке я хотел бы разрешить пользователям как удалять, так и редактировать отдельную дочернюю запись.

Моя функция DELETE работает нормально, у меня проблемы с функцией UPDATE ...

Вот контроллер обновления children #:

def update
  raise
  @user = current_user
  @child = Child.find(params[:id])
  if @child.update_attributes(child_params)
    flash[:notice] = "Child info was updated."
  else
    flash[:error] = "Sorry.  Something went wrong, please try again."
  end
  respond_with(@child) do |f|
    f.html { redirect_to new_child_path }
  end
end

Вот частичный вид формы дочернего списка:

<form role="form">
  <% i = 1 %>
  <% @user.children.each do |child| %>
  <div class="col-md-12 form-align list-line">
    <div class="col-md-10 form-align">
      <%= label_tag child, "Child #{i}:" %>
      <% i += 1 %>
    </div>
  </div>
  <%= form_for(child, method: :put) do |f| %>
    <div class="col-md-12 form-align">
      <div class='col-md-4 form-align'>
        <%= f.label :first_name, class: 'sr-only' %>
        <%= f.text_field :first_name, value: child.first_name, class: 'form-control form-control-align'  %>
      </div>
      <div class='col-md-4 form-align'>
        <%= f.label :middle_name, class: "sr-only" %>
        <%= f.text_field :middle_name, value: child.middle_name, class: 'form-control form-control-align'  %>
      </div>
      <div class='col-md-4 form-align'>
        <%= f.label :last_name, class: "sr-only" %>
        <%= f.text_field :last_name, value: child.last_name, class: 'form-control form-control-align'  %>
      </div>
    </div>
    <div class="col-md-12 form-align">
      <div class="col-md-4 form-group form-inline form-align">
        <%= f.label :birth_date, "D.O.B." %>
        <%= f.date_field  :birth_date, value: child.birth_date,  class: 'form-control' %>
      </div>
      <div class="col-md-4 form-group form-inline form-align">
        <%= f.label :deceased, "Deceased?" %>
        <%= f.select :deceased, value: child.deceased?,  class: 'form-control form-control-align' %>
      </div>
      <%= f.submit "Update" %>
      <%= link_to '<i class="glyphicon glyphicon-remove red"></i>'.html_safe, child,  method: :delete %>
    </div>
  <% end %>
  <% end %>
</form>

... и дочерняя модель: просто own_to: модель пользователя / пользователя has_many: children

... и маршруты: ресурсы: дети

Я думаю, мне нужны некоторые параметры, пропущенные через мою form_for, но я не могу найти, что они должны быть ...


person Adam Chapman    schedule 21.07.2014    source источник
comment
Вам следует подумать об удалении этого вопроса.   -  person zeantsoi    schedule 22.07.2014


Ответы (1)


Я бы посоветовал использовать такой драгоценный камень, как Best in Place, чтобы обеспечить возможность размещения на месте редактирование по определенным полям в списке.

Если вам не нужно редактирование на месте, используйте модальное представление, содержащее форму редактирования.

person Kyle Schutt    schedule 21.07.2014
comment
Другой вариант - X-Editable для редактирования на месте. - person Kyle Schutt; 22.07.2014
comment
Спасибо, Кайл! Проверим! - person Adam Chapman; 22.07.2014