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.

Était-ce utile?

La solution

ActiveRecord::Base#save reviendra faux si une validation échoue ou si before_* Les rappels sur le modèle renvoient faux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top