Forum: Ruby on Rails How to get which check boxes has beed unchecked and remove Subscription for them?

B39eadf04a0382f9d9ebd715669e53aa?d=identicon&s=25 Darek F. (darek_f)
on 2012-11-07 00:28
(Received via mailing list)
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
>
   <ul>
>
      <% @apps.each do |app| %>
>
        <li> <%= check_box_tag app.id, current_user.access?(app)
%><span>
>
           <%= app.name %></span>
>
        </li>
>
      <% end %>
>
    </ul>
>
  <%= f.submit %>
>
<% end %>
>

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

<http://i.stack.imgur.com/5VoyD.png>

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 :)
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.