Различные значения между консолью и представлением - PullRequest
0 голосов
/ 21 сентября 2018

У меня проблема с "wtf", которую я не понимаю.У меня есть вид, где пользователь может видеть все свои фотографии.На каждом изображении есть значок для удаления изображения.Этот значок открывает модал, где есть ссылка для удаления картинки.Но каждая ссылка идет, чтобы удалить первое изображение в представлении.

Самое странное, что:

= picture_path(picture)
# => path of the first picture

- puts picture_path(picture)
# => path of the right picture

Как это возможно?

Это частьмои взгляды:

_gallery.slim

.row
  - pictures.each do |picture|
    .col-xs-10.col-xs-offset-1.col-sm-6.col-sm-offset-0.col-md-4.col-lg-3
      # Some code
        .caption id="pictures-#{picture.id}"
          .row
            - if current_user == @user
              = render 'pictures/form_position', picture: picture # => Here we go

_form_position.slim

.caption-edit.d-block
   .col-lg-6.col-md-6.col-xs-6
      div
         span> Position
         span.hide-if-edit
            => picture.position
         span.icon.icon-edit.picture-position-icon.hide-if-edit
         span.icon.icon-delete.hidden.picture-position-icon.position-form data-toggle= 'modal' data-target= '#delete-picture-modal'
         = render 'pictures/destroy_picture_modal', picture: picture # => My modal
   .col-lg-6.col-md-6.col-xs-6.position-form.hidden
      = simple_form_for picture, remote: true do |f|
         = hidden_field_tag(:position)
         = f.input :position, wrapper: :vertical_input_group, label: false do
            = f.input_field :position, value: picture.position, class: 'form-control'
            .input-group-btn
               = button_tag type: 'submit', class: 'btn btn-primary' do
                  i.icon.icon-check

_destroy_picture_modal.slim

.modal.fade#delete-picture-modal tabindex= '-1' role= 'dialog' aria-hidden= 'true'
   .modal-dialog role= 'document'
      .modal-content
         .modal-header
            button type="button" class="close" data-dismiss="modal" ×
            h5.modal-title Delete the picture
         .modal-body
            p Are you sure?
         .modal-footer
            = button_tag 'Cancel', type: 'button', class: 'btn btn-secondary', data: { dismiss: 'modal' }
            = link_to picture_path(picture), method: :delete do # => Where there's a problem
               = button_tag 'Delete', type: 'button', class: 'btn btn-primary'

Напоминаю:

= picture_path(picture)
# => return the path of the first picture

- puts picture_path(picture)
# => return the right path

Видите ли вы что-то не так в моем коде?

1 Ответ

0 голосов
/ 21 сентября 2018

Вы используете один id идентификатор для нескольких модалов:

data-target= '#delete-picture-modal'

Отображается несколько модалов, но вы всегда нацеливаетесь на «первый» при нажатии на значок удаления.

Вы должны назначить уникальный идентификатор каждому модалу и нацелить его соответственно.(Или заполните модальное с помощью некоторого асинхронного JavaScript.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...