filters defined in :before_filter does not seem to get fired when ajax requests are made to the methods in the :before_filter

hi, guys

My rails 3 app is working fine except for resource deletion which uses ajax. The resource is "part".

When the user clicks on the "delete part" link, a confirmation pop up box will appear. Upon clicked on "ok", an ajax request is fired to the 'delete' method in my controller.

In the "parts" controller, I have a before_filter which points to a method which checks if the current user has authorisation to delete the given part entry.

This method works fine for my other methods specified in the before_filter but doesn't for the deletion method.

------------------ extract from: app/view/parts/index.html.erb (start)

I've done some extra checks and observed that with Javascript turned off on my web browsers (chrome and firefox), the destroy method does not get called when I click on it.

in app/views/parts/index.html.erb, i observed that I was using ":method => delete" to generate the deletion link. I have changed it to use 'data-method'=> :delete but it still does not work :frowning:

                                link_to 'Delete',                                         part_path(part.id),                                        :method => :delete,                                         'data-confirm' => 'Are you sure?',                                         'data-remote' => 'true',                                         'class' => 'delete_part'

                                 to

                                link_to 'Delete',                                         part_path(part.id),                                        'data-method' => :delete,                                         'data-confirm' => 'Are you sure?',                                         'data-remote' => 'true',                                         'class' => 'delete_part'

hi, guys

My rails 3 app is working fine except for resource deletion which uses ajax. The resource is "part".

When the user clicks on the "delete part" link, a confirmation pop up box will appear.I've done some extra checks and observed that with Javascript turned off on my web browsers (chrome and firefox),

the destroy method does not get called when I click on it.

in app/views/parts/index.html.erb, i observed that I was using ":method => delete" to generate the deletion link. I have changed it to use 'data-method'=> :delete but it still does not work :frowning:

                                link_to 'Delete',                                         part_path(part.id),                                        :method => :delete,                                         'data-confirm' => 'Are you sure?',                                         'data-remote' => 'true',                                         'class' => 'delete_part'

                                 to

                                link_to 'Delete',                                         part_path(part.id),                                        'data-method' => :delete,                                         'data-confirm' => 'Are you sure?',                                         'data-remote' => 'true',                                         'class' => 'delete_part'

My bad... I put "delete" in the :before_filter's list of methods when the method name is "destroy".

Silly gotcha.

Sorry gents. Hope someone facing roughly the same issue would benefit from this little lesson I learnt.

Cheers :slight_smile: