オブジェクトは、Rails IRBの変更を保存することを拒否します
-
27-09-2019 - |
質問
みんなおはよう、
取り組んでいる協会がありますが、何らかの理由で、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を返します。
所属していません StackOverflow