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

8 views
Skip to first unread message

Darek Finster

unread,
Nov 6, 2012, 6:27:24 PM11/6/12
to rubyonra...@googlegroups.com
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).


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 :)
Reply all
Reply to author
Forward
0 new messages