On Wednesday, 2 May 2012 10:58:49 UTC-4, Ruby-Forum.com User wrote: > > I'm in trouble with an pl/sql query. My user ActiveRecord::Base class > has a specific query. When I call this query, I've an error "TypeError > no _dump_data is defined for class Proc". > > There is the ActiveRecord::Base class > > class Utilisateur < ActiveRecord::Base > self.table_name = 'v1_utilisateur' > self.primary_key = 'utilid' > self.sequence_name = 'SQ1_UTILISATEUR' > > has_many :util_service, > :foreign_key => 'utilid', > :conditions => "modcode='SERVICE'", > :order => 'sercode' > has_many :direction, > :class_name => "Utilisateur", > :finder_sql => Proc.new{%Q{SELECT * FROM v1_utilisateur}} > end > > I use this instruction to call the query > session[:direction] = @user.direction > > What am I doing wrong? > > Couple things:
- don't put ActiveRecord models in the session, if you can possibly avoid it. You'll encounter weird bugs, *and* wind up with data out of sync with the DB. - @user.direction isn't even an AR model, it's an association proxy. @user.direction.to_a will get you an array of real models, if that's what you want. - :finder_sql needs to specify the *entire* SQL query including whatever foreign-key-like expressions are needed, so the association as declared above will return the same records for every user. If this is really what you want, adding a simple method to user rather than an association may be clearer. Specifying :foreign_key on an association with :finder_sql has no effect, as the :foreign_key option is ignored. - has_manys are typically spelled with the plural version; has_many :directions rather than has_many :direction. Not an actual bug, but a serious annoyance for anybody reading your code later. --Matt Jones -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/yQt20PxsiO4J. To post to this group, send email to rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.