How to get which check boxes has beed unchecked and remove Subscription for them?

I have following subscription creating system, right now when I`m selection available subscription groups(Marketing, Sales) action Save Subscription create this two subscriptions:

@subscriptions = current_user.subscriptions
@apps = App.all
if request.post?
if params[:subscription] and params[:subscription][:app_id]
params[:subscription][:app_id].each do |app_id|
Subscription.create_unique({user_id: current_user.id, app_id: app_id})
end
redirect_to root_path
end
end

app_menu.html.erb

<%= form_for :subscription do |f| %> # this form goes to app_menu action above

<% @apps.each do |app| %>

  • <%= check_box_tag app.id, current_user.access?(app) %>
  • <%= app.name %>

    <% end %>

    <%= f.submit %>

    <% end %>

    So I can only add new Subscriptions(in this particular example i can only add Engineering).

    How to refactor that action to be able also destroy subscription groups by uncheck them(ex. I want to unsubscribe from Marketing group) ?

    So when I choose Marketing and Enginnering then params[:subscription][:app_id] will be equal [marketing.id, engineering.id]

    Relations:

    App
    has_many :subscriptions
    has_many :users, through: :subscriptions
    User
    belongs_to :app
    has_many :subscriptions, :dependent => :destroy
    Subscription
    belongs_to :user
    belongs_to :app

    So the issue is how to find which apps has been unchecked? And maybe is a way how to refactor that action. Pleas help :slight_smile: