Ich habe zwei Modelle Group
und Person
. Beide sind HABTM, aber ich möchte, dass sich eine Person aus einer bestimmten Gruppe abmeldet, ohne diese Gruppe zu löschen, nur die Person aus der Gruppe. Ich habe versucht, das in der Konsole herauszufinden, und ich kann es nicht verstehen. Ich zeige meinen Code zur Klärung.Löschen eines einzelnen Benutzers in einer Gruppe - Active Record
Ich mache diese Methode derzeit
def delete_from_group(phone_number)
person = Person.find_by(phone_number: phone_number)
person.groups.destroy
end
dies mein Controller ist.
def create
# Grab the phone number from incoming Twilio params
@phone_number = params[:From]
# Find the subscriber associated with this number or create a new one
@subscriber = Person.find_or_create_by(phone_number: @phone_number)
@delete_group = Person.find_by(phone_number: @phone_number)
# Update location data
@subscriber.update(
city: params[:FromCity],
state: params[:FromState],
zip: params[:FromZip],
country: params[:FromCountry]
)
@body = params[:Body].to_s.downcase.strip
begin
# Process the command from our Subscriber
output = process_message(@body, @subscriber, @delete_group)
rescue
output = "Something went wrong. Try again."
end
# Render the TwiML response
respond(output)
end
private
def process_message(message, subscriber, delete_group)
if worker_groups.include?(message)
subscriber.update(subscribed: true)
subscriber.add_to_group(message)
"You have been subscribed to the #{message.capitalize} list"
elsif message == "stop volunteer"
delete_group.delete_from_group("volunteer")
"You have been unsubscribed from the specified list"
elsif message == "stop dancer"
delete_group.delete_from_group("dancer")
"You have been unsubscribed from dancer list"
elsif message == "stop staff"
delete_group.delete_from_group("staff")
"you have been unsubscribed from staff list"
elsif message == "tulip" || message == "stem"
subscriber.update(subscribed: message == "tulip")
subscriber.add_to_group("visitor")
if subscriber.subscribed
"You are now subscribed for updates."
else
"You have unsubscribed from notifications. Text 'TULIP' to start receieving updates again."
end
else
"Sorry, we don't recognize that command. Available commands are: 'TULIP' or 'STEM'."
end
end
def worker_groups
%w(dancer staff volunteer)
end
def worker_groups
%w(dancer staff volunteer)
end
Wir werden mehr Informationen benötigen, wie '' Person' und Group' verbunden sind. Kann helfen zu zeigen, was die Methode 'add_to_group' macht, oder zeigt die Assoziation in jedem Modell. – MTarantini