Objeto se recusa a salvar alterações no Rails IRB
-
27-09-2019 - |
Pergunta
Bom Dia a todos,
Eu tenho uma associação em que estou trabalhando e, por algum motivo, não consigo economizar alterações no objeto em questão quando estou depurando -o no IRB. Eu queria saber se alguém poderia apontar meu problema.
Aqui está a associação:
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
Quando eu aceito o IRB, posso pegar um usuário. Primeiro e afiliado. Eu posso definir bem o gerenciado do usuário. No entanto, quando salvo, isso não é refletido na afiliada - ele não tem gerente. Da mesma forma, posso definir o gerente da afiliado (afiliate.first.manager = user.first). Ele retorna como se tudo estivesse bem, mas quando eu vou salvá -lo, simplesmente retorna "false". Se eu ativar a função de registro do IRB, esta é a saída:
SQL (0.1ms) BEGIN
SQL (0.2ms) ROLLBACK
Existe alguma razão óbvia para que essa associação não economize corretamente?
Além disso, aqui está o esquema para a tabela 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
Obrigado por qualquer ajuda.
Solução
ActiveRecord::Base#save
retornará falso se uma validação falhar ou se houver before_*
Os retornos de chamada no modelo retornam falsos.