This project is archived and is in readonly mode.
Find on nested models does not trigger callbacks
Reported by Matthias Kühnert | November 6th, 2010 @ 11:56 AM
Rails 3.0.1: find on nested models does not trigger callbacks:
class TeachingGroup < ActiveRecord::Base
belongs_to :school_term
...
after_update :foo
end
In TeachingGroupsController
, any callbacks on the
models are not triggered when I use a nested find. The model
returned is the same in each case:
class TeachingGroupsController < ApplicationController
...
def update
# this works, triggers callbacks on update_attributes or create:
@teaching_group = TeachingGroup.find(params[:id])
# for security, I want this, but this DOES NOT trigger callbacks:
@teaching_group = @current_term.teaching_groups.find(params[:id])
# works, triggers callbacks
@teaching_group = TeachingGroup.find_by_id_and_school_term_id(params[:id], @current_term.id)
if @teaching_group.update_attributes( params[:teaching_group] ) ...
...
end
...
end
Same phenomenon in create
. The main problem is that
the cache sweeper does not work either.
Please help, and many thanks for your hard work on Rails!
Comments and changes to this ticket
-
Neeraj Singh November 10th, 2010 @ 09:29 PM
- Importance changed from to Low
Not sure what you mean by NestedModel since I did not see any NestedModel in the example you illustrated.
Following code works for me with rails edge.
class Car < ActiveRecord::Base has_many :brakes end class Brake < ActiveRecord::Base belongs_to :car after_update :foo def foo puts 'foo'*50 end def self.lab Car.create(:name => 'honda') unless Car.first Car.first.brakes.create(:name => 'b1') unless Brake.first b = Brake.find(1) b.update_attributes({:name => 'b2'}) b = Car.first.brakes.find(1) b.update_attributes({:name => 'b3'}) b = Brake.find_by_id_and_name(1, 'b3') b.update_attributes({:name => 'b4'}) end end
-
Matthias Kühnert November 13th, 2010 @ 01:46 PM
OK, I have just found this error does not occur when I use "rails server", but when I use passenger 3.0.0. Sorry, these are not nested models but simple has_many relations.
-
Neeraj Singh November 23rd, 2010 @ 09:27 PM
- State changed from new to resolved
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile »
<h2 style="font-size: 14px">Tickets have moved to Github</h2>
The new ticket tracker is available at <a href="https://github.com/rails/rails/issues">https://github.com/rails/rails/issues</a>