質問

みんなおはよう、

取り組んでいる協会がありますが、何らかの理由で、IRBでデバッグしているときに、問題のオブジェクトの変更を保存することはできません。誰かが私の問題を指摘できるかどうか疑問に思っていました。

これが協会です:

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

IRBを起動すると、ユーザーをつかむことができます。最初とアフィリエイト。ユーザーのmanaged_affiliateを正常に設定できます。しかし、私が保存すると、それはアフィリエイトにはまったく反映されていません - マネージャーはいません。同様に、アフィリエイトのマネージャーを正常に設定できます(Affiliate.first.manager = user.first)。それはすべてが大丈夫であるように戻りますが、私がそれを保存するために行くと、単に「false」を返します。 IRBロギング関数をアクティブにすると、これは出力です。

SQL (0.1ms)   BEGIN
SQL (0.2ms)   ROLLBACK

この協会が適切に保存されない理由は明らかですか?

また、ここにアフィリエイトテーブルのスキーマがあります。

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

助けてくれてありがとう。

役に立ちましたか?

解決

ActiveRecord::Base#save 検証が失敗した場合、または存在する場合にfalseを返します before_* モデルのコールバックはfalseを返します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top