[Ror-es] belongs_to falla
Fernando Calatayud
ruby-forum-incoming at andreas-s.net
Mon Dec 17 09:14:39 GMT 2007
Xavier Noria wrote:
> On Dec 17, 2007, at 12:54 AM, Fernando Calatayud wrote:
>
>> He definido la relaci�n entre usuario y provincia, de forma est�ndar:
>>
>> Usuario.rb -> belongs_to :provincia, :foreign_key => 'provincia_id'
>
> Aqui la :foreign_key es redundante, se calcula a partir del nombre de
> la relacion. Si la relacion se llama :provincia la llave por defecto
> se asume que es "provincia_id", y la clase asociada Provincia.
Sí, inicialmente lo hice así, pero como no iba decidí explicitarlo a ver
si daba mejor resultado... aunque obviamente, no ha servido de nada.
>> Pero luego, funciona como si no se hubiera creado el belongs_to:
>>
>> @usuario = Usuario.find(session[:usuario_id])
>> raise @usuario.provincia.inspect
>> -> nil
>> raise @usuario.provincia_id.inspect
>> -> 15
>
> Puedes copiar lo relevante en db/schema.rb y en los dos modelos sin
> editarlos?
>
> -- fxn
Ya ha salido el fallo, estaba en Provincia.rb, en una función que añadió
un compañero para ordenar por defecto:
class Provincia < ActiveRecord::Base
has_many :productos
has_many :usuarios
has_many :socios
belongs_to :pais
belongs_to :comunidad
validates_presence_of :pais_id, :comunidad_id, :nombre, :nombre_corto,
:position
# setea por default que el orden sea por nombre si le asigna ninguno.
def self.find(*args)
order_arg = args.collect do |arg|
if arg.kind_of? Hash
if arg.keys[0] == :order
arg
end
end
end
if order_arg.compact.empty?
args << {:order => "nombre ASC"}
end
super
end
end
Quitando esta función, ya funciona... ahora se lo comentaré a mi
compañero, para ver si la quitamos definitivamente o se la curra para
que no estropee el funcionamiento normal.
Muchas gracias.
--
Posted via http://www.ruby-forum.com/.
More information about the Ror-es
mailing list