El objeto se niega a guardar cambios en los rieles IRB
-
27-09-2019 - |
Pregunta
Buenos dias a todos,
Tengo una asociación en la que estoy trabajando, y por alguna razón, no puedo conseguir que guarde cambios en el objeto en cuestión cuando lo depugio en IRB. Me preguntaba si alguien podría señalar mi problema.
Aquí está la asociación:
class User < ActiveRecord::Base
has_and_belongs_to_many :affiliates
has_one :managed_affiliate, :class_name => "Affiliate", :foreign_key => "manager_id"
end
class Affiliate < ActiveRecord::Base
has_and_belongs_to_many :users
belongs_to :manager, :class_name => "User"
#The affiliates table has a foreign key field of manager_id
end
Cuando enciendo el IRB, puedo tomar un usuario. Puedo configurar el usuario Managed_affiliate bien. Sin embargo, cuando guardo, eso no se refleja en absoluto en el afiliado, no tiene gerente. Del mismo modo, puedo configurar bien el administrador del afiliado (afiliado.first.manager = user.first). Devuelve como si todo esté bien, pero cuando voy a guardarlo, simplemente devuelve "falso". Si activo la función de registro de IRB, esta es la salida:
SQL (0.1ms) BEGIN
SQL (0.2ms) ROLLBACK
¿Hay alguna razón obvia por la cual esta asociación no se ahorrará correctamente?
Además, aquí está el esquema de la tabla de afiliados:
create_table "affiliates", :force => true do |t|
t.string "name"
t.string "website"
t.integer "market_id"
t.datetime "created_at"
t.datetime "updated_at"
t.string "logo_file_name"
t.string "logo_content_type"
t.integer "logo_file_size"
t.boolean "track_subs"
t.integer "manager_id"
end
Gracias por cualquier ayuda.
Solución
ActiveRecord::Base#save
devolverá falso si una validación falla o si alguna before_*
Las devoluciones de llamada en el modelo devuelven falso.