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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.