Я пытаюсь добавить дэ возможность легко добавлять и удалять игроков «» из «группы»Как удалить объект из модели коллекции с помощью ссылки
Group является модель, которая has_and belongs_to_many игроков. Это буквально просто имя с группой игроков на нем и user_id, чтобы определить, чья это группа.
Есть следующий контроллер групп
def remove_player(player)
@group = current_user.groups.find params[:id]
@group.players.delete(player)
redirect_to @group
end
Есть следующий по мнению
- @group.players.each do |player|
%tr
%td
= player.name
%td
= link_to 'Delete', remove_player_group_path(player.id), :class => 'btn btn-mini btn-danger'
И есть следующий в маршрутах
resources :groups do
member do
post 'add_player'
post 'remove_player'
end
Но я получаю ноль маршрутизации ID ошибка. Уверен, это должно быть очень просто, любые идеи. Просто хочу иметь возможность удалять игрока из группы.
также экспериментировал с:
= link_to 'Delete', :controller => "group", :action => "remove_player", :class => 'btn btn-mini btn-danger'
Который дает мне ошибку маршрутизации ...
Путь кажется прекрасным. Если я изменю его, я получаю ошибку метода. Rails кажется достаточно счастливым с синтаксисом, я использую то же самое на add-player и, похоже, работает. Ошибка Нет совпадений маршрутов {: action => "remove_player",: controller => "groups",: id => nil} – Carpela
Я бы посоветовал использовать жучок для отладки (https://github.com/pry/pry) и добавьте 'binding.pry' в начале действия 'remove_player', чтобы проверить, что значение 'player' и 'paramsp: id]' на самом деле правильное/не null. Приложение остановится при привязке.и вы сможете проверить значения ваших переменных в консоли, на которой запущен сервер rails. – JellyFishBoy