Hi,

Well, I would suggest to do the following:

class User < ActiveRecord::Base
  has_many :schoolclass_users
  has_many :schoolclasses, :through => :schoolclass_users
end

class Schoolclass < ActiveRecord::Base
  has_many :schoolclass_users
  has_many :users, :through => :schoolclass_users
end

In addition I would recommend to not use a singularized table_name:
"schoolclass_user".

At least this configuration works for me. Without the additional
associations in the models I could reproduce your klass nil exception.

--
volker


On 30 Jan., 21:51, Soren <[email protected]> wrote:
> Tried to build a really simple test case to understand a problem in
> another tread.
> Leads to the same problem as previously:
>
> undefined method `klass' for nil:NilClass
> /usr/lib64/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/
> whiny_nil.rb:52:in `method_missing'
> /usr/lib64/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/
> reflection.rb:257:in `source_reflection'
> /usr/lib64/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/
> reflection.rb:257:in `collect'
> /usr/lib64/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/
> reflection.rb:257:in `source_reflection'
> /usr/lib64/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/
> reflection.rb:316:in `derive_class_name'
> /usr/lib64/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/
> reflection.rb:112:in `class_name'
> /home/soren/tmp/test/vendor/plugins/active_scaffold/lib/extensions/
> reverse_associations.rb:11:in `reverse'
> /home/soren/tmp/test/vendor/plugins/active_scaffold/lib/
> active_scaffold/data_structures/column.rb:117:in `autolink?'
> /home/soren/tmp/test/vendor/plugins/active_scaffold/lib/
> active_scaffold.rb:107:in `links_for_associations'
> /home/soren/tmp/test/vendor/plugins/active_scaffold/lib/
> active_scaffold/data_structures/columns.rb:62:in `each'
> /home/soren/tmp/test/vendor/plugins/active_scaffold/lib/
> active_scaffold/data_structures/columns.rb:62:in `each'
> /home/soren/tmp/test/vendor/plugins/active_scaffold/lib/
> active_scaffold.rb:106:in `links_for_associations'
> /home/soren/tmp/test/vendor/plugins/active_scaffold/lib/
> active_scaffold.rb:59:in `active_scaffold'
> /home/soren/tmp/test/app/controllers/schoolclasses_controller.rb:5
>
> Here is my models:
> class Schoolclass < ActiveRecord::Base
>
>   has_many :users, :through => :schoolclass_user
>
> end
>
> class SchoolclassUser < ActiveRecord::Base
>
>   belongs_to :schoolclass
>   belongs_to :user
>
> end
>
> class User < ActiveRecord::Base
>
>   has_many :schoolclasses, :through => :schoolclass_user
>
> end
>
> Here is my controllers
> class SchoolclassesController < ApplicationController
>
>  layout "default"
>
>   active_scaffold :schoolclasses do |config|
>
>   end
>
> end
>
> class UsersController < ApplicationController
>
>   layout "default"
>
>   active_scaffold :user do |config|
>
>   end
>
> end
>
> And the schema is :
>
>   create_table "schoolclass_user", :force => true do |t|
>     t.datetime "created_at"
>     t.datetime "updated_at"
>     t.integer  "user_id"
>     t.integer  "schoolclass_id"
>   end
>
>   create_table "schoolclasses", :force => true do |t|
>     t.datetime "created_at"
>     t.datetime "updated_at"
>     t.string   "name"
>     t.integer  "grade"
>   end
>
>   create_table "users", :force => true do |t|
>     t.datetime "created_at"
>     t.datetime "updated_at"
>     t.string   "first_name"
>     t.string   "last_name"
>   end
>
> Adding the
> config.columns[:schooclasses].association.reverse = :user
> config.columns[:users].association.reverse = :schoolclass
>
> does not help.
>
> Did I hit a bug in AS or do I have some gross oversight somewhere that
> prevents this from working ?
>
> /S

-- 
You received this message because you are subscribed to the Google Groups 
"ActiveScaffold : Ruby on Rails plugin" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/activescaffold?hl=en.

Reply via email to