Czyli ze co pytanie twoje jest jak usunąc jakieś dane z tablicy? Hasha? Bo na to wygląda. Jak tak to kilka minut z dokumentacja powinno ci wystarczyć. Czytanie jej nie boli raczej ;]
Czlowieku, przeczytaj dokladnie pytanie, chodzi o relacje wiele do wiele i kolekcje AR. Gdyby to byla zwykla relacja 1:n to bym zrobil @jobs.tasks.delete(@task) i po sprawie.
@hosiawak, rozumiem ze habtm ma metode delete, ja jednak musze skorzystac w tym wypadku z tabeli laczacej, bo to moj model na ktorym wykonuje dodatkowe operacje.
Problem jest taki ze w tym wypadku metoda delete nie daje oczekiwanego rezultatu, to znaczy element nie jest usuwany z kolekcji.
class CrewUser < ActiveRecord::Base
belongs_to :crew
belongs_to :user
end
#model uzytkownika
class User < ActiveRecord::Base
has_many :crew_users #relacja n:n etap 1
has_many :crews, :through => :crew_users #relacja n:n etap 2
end
#kawalek kontrolera zalogi
class CrewsController < ApplicationController
def join # to dziala @crew = Crew.find(params[:id]) @crew.users << @current_user if !@crew.users.include?(@current_user)
redirect_to(crew_url(@crew))
end
def leave # to juz nie dziala @crew = Crew.find(params[:id]) @crew.users.delete(@current_user) @crew.save
redirect_to(crew_url(@crew))
end
end[/code]
Chodzi o to ze gdy wywoluje @crew.users.delete(@user) , @user nie jest usuwany z kolekcji @crew.users . Ma ktos jakis pomysl ?
chcesz go usunąć z bazy czy tylko z kolekcji ? Pozatym z tego co widzę crew ma jednego usera bo jest belongs_to user. W każdym razie spróbuj cos takiego