L'objet refuse d'enregistrer les modifications dans la CRI des rails
-
27-09-2019 - |
Question
Bonjour à tous,
J'ai une association sur laquelle je travaille, et pour une raison quelconque, je ne peux pas le faire enregistrer des modifications de l'objet en question lorsque je le débogue en IRB. Je me demandais si quelqu'un pouvait souligner mon problème.
Voici l'association:
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
Lorsque je lance la CISR, je peux saisir un utilisateur. premier et affilié. Je peux très bien définir l'utilisateur Managed_Affiliate. Cependant, lorsque j'économise, cela ne se reflète pas du tout dans l'affilié - il n'a pas de gestionnaire. De même, je peux très bien définir le gestionnaire de l'affilié (affilié.First.Manager = user.First). Il revient comme si tout va bien, mais quand je vais l'enregistrer, il revient simplement "faux". Si j'active la fonction de journalisation IRB, c'est la sortie:
SQL (0.1ms) BEGIN
SQL (0.2ms) ROLLBACK
Y a-t-il une raison évidente pour laquelle cette association ne sauvera pas correctement?
En outre, voici le schéma du tableau des affiliés:
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
Merci pour toute aide.
La solution
ActiveRecord::Base#save
reviendra faux si une validation échoue ou si before_*
Les rappels sur le modèle renvoient faux.