Как удалить объект из объекта модели соединения в каждом цикле - PullRequest
0 голосов
/ 29 мая 2018

У меня есть модель события:

 has_many :users, through: :event_users
 has_many :event_users

a Модель пользователя:

 has_many :events, through: :event_users
 has_many :event_users

и модель EventUser:

 belongs_to :event
 belongs_to :user

На моей странице события,У меня есть список пользователей Event:

<% @event.users.each_with_index do |user, index| %>
    <li>        
        <%= user.try(:display_name) %>
            <%= link_to "delete",  user, method: :delete, class: 'btn', data: { confirm: 'Are you sure?' } %>
    </li>
<% end %>

Когда я нажимаю ссылку «удалить», объект Event удаляется вместо EventUser.Я понятия не имею, какой синтаксис должен быть в link_to для ссылки на правильный объект.

1 Ответ

0 голосов
/ 29 мая 2018

link_to "delete", user, method: :delete переходит в UsersController # delete.Вам нужно отдельное действие (или, может быть, контроллер), чтобы удалить EventUsers.Что-то вроде:

EventsController
  def remove_user
    event = Event.find(params[:id])
    event_user = event.event_users.find_by!(user_id: params[:user_id])
    event_user.destroy
  end
end

rout.rb:

resources :events do
  delete remove_user, on: :member, as: :remove_user
end

форма:

<% @event.users.each_with_index do |user, index| %>
  <li>        
    <%= user.try(:display_name) %>
    <%= link_to "delete",  remove_user_path(@event, user_id: user.id), method: :delete, class: 'btn', data: { confirm: 'Are you sure?' } %>
  </li>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...