Hi. I created an app to illustrate my problem: https://github.com/Dagnan/rails_inverse_of I have a model with a belongs_to, and the other with a has_one. So far so good. When I configure the option inverse_of on both model and I perform a simple #save on the main object, it is actually saved two times (once saved and then updated). *Is it an expected behavior?* A way to avoid this problem would be not to use inverse_of, or to have "autovalidate: false" in the second model (Recurrence in my example) for the has_one association. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/fd418f1a-3c1d-48ec-9f1c-daad47331001%40googlegroups.com?hl=en-US. For more options, visit https://groups.google.com/groups/opt_out.
Help? On Friday, May 31, 2013 7:39:30 PM UTC+2, Michel Pigassou wrote:> > Hi. > > I created an app to illustrate my problem: > https://github.com/Dagnan/rails_inverse_of > > I have a model with a belongs_to, and the other with a has_one. So far so > good. > When I configure the option inverse_of on both model and I perform a > simple #save on the main object, it is actually saved two times (once saved > and then updated). > > *Is it an expected behavior?* > > A way to avoid this problem would be not to use inverse_of, or to have > "autovalidate: false" in the second model (Recurrence in my example) for > the has_one association. >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/f13a3fdc-227d-48ea-a7cc-7a2dbe6664f7%40googlegroups.com?hl=en-US. For more options, visit https://groups.google.com/groups/opt_out.
I cannot duplicate your error running your github example. Here''s what I see: /Dagnan/rails_inverse_of 656 > rails --version Rails 3.2.13 /Dagnan/rails_inverse_of 657 > ruby --version ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.3.0] /Dagnan/rails_inverse_of 658 > ruby -Itest test/unit/campaign_test.rb Run options: # Running tests: [1/1] CampaignTest#test_create_a_campaign_with_recurrenceHere Here Finished tests in 0.195217s, 5.1225 tests/s, 0.0000 assertions/s. 1 tests, 0 assertions, 0 failures, 0 errors, 0 skips ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.3.0] /Dagnan/rails_inverse_of 659 > On Monday, June 3, 2013 1:55:29 AM UTC-4, Michel Pigassou wrote:> > Help? > > On Friday, May 31, 2013 7:39:30 PM UTC+2, Michel Pigassou wrote: >> >> Hi. >> >> I created an app to illustrate my problem: >> https://github.com/Dagnan/rails_inverse_of >> >> I have a model with a belongs_to, and the other with a has_one. So far so >> good. >> When I configure the option inverse_of on both model and I perform a >> simple #save on the main object, it is actually saved two times (once saved >> and then updated). >> >> *Is it an expected behavior?* >> >> A way to avoid this problem would be not to use inverse_of, or to have >> "autovalidate: false" in the second model (Recurrence in my example) for >> the has_one association. >> >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/65ef8fb8-2e4b-4068-999c-b68a8fc29d15%40googlegroups.com?hl=en-US. For more options, visit https://groups.google.com/groups/opt_out.
I just noticed that your error does, in fact, appear in my output. However, if I run inside of the rails console I don''t see the redundant "Here". i.e.: /Dagnan/rails_inverse_of 659 > rails c Loading development environment (Rails 3.2.13) irb(main):001:0> c = Campaign.new => #<Campaign id: nil, created_at: nil, updated_at: nil, recurrence_id: nil> irb(main):002:0> c.recurrence = Recurrence.new => #<Recurrence id: nil, created_at: nil, updated_at: nil> irb(main):003:0> c.save! (0.1ms) begin transaction SQL (5.1ms) INSERT INTO "recurrences" ("created_at", "updated_at") VALUES (?, ?) [["created_at", Mon, 03 Jun 2013 15:15:11 UTC +00:00], ["updated_at", Mon, 03 Jun 2013 15:15:11 UTC +00:00]] Here SQL (0.5ms) INSERT INTO "campaigns" ("created_at", "recurrence_id", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 03 Jun 2013 15:15:11 UTC +00:00], ["recurrence_id", 1], ["updated_at", Mon, 03 Jun 2013 15:15:11 UTC +00:00]] Here (49.1ms) commit transaction => true irb(main):004:0> c => #<Campaign id: 1, created_at: "2013-06-03 15:15:11", updated_at: "2013-06-03 15:15:11", recurrence_id: 1> irb(main):005:0> My guess is it''s a "test mode" artifact of some kind. On Monday, June 3, 2013 11:13:26 AM UTC-4, Rick wrote:> > I cannot duplicate your error running your github example. Here''s what I > see: > > /Dagnan/rails_inverse_of 656 > rails --version > Rails 3.2.13 > /Dagnan/rails_inverse_of 657 > ruby --version > ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.3.0] > /Dagnan/rails_inverse_of 658 > ruby -Itest test/unit/campaign_test.rb > Run options: > > # Running tests: > > [1/1] CampaignTest#test_create_a_campaign_with_recurrenceHere > Here > Finished tests in 0.195217s, 5.1225 tests/s, 0.0000 assertions/s. > 1 tests, 0 assertions, 0 failures, 0 errors, 0 skips > > ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.3.0] > /Dagnan/rails_inverse_of 659 > > > On Monday, June 3, 2013 1:55:29 AM UTC-4, Michel Pigassou wrote: >> >> Help? >> >> On Friday, May 31, 2013 7:39:30 PM UTC+2, Michel Pigassou wrote: >>> >>> Hi. >>> >>> I created an app to illustrate my problem: >>> https://github.com/Dagnan/rails_inverse_of >>> >>> I have a model with a belongs_to, and the other with a has_one. So far >>> so good. >>> When I configure the option inverse_of on both model and I perform a >>> simple #save on the main object, it is actually saved two times (once saved >>> and then updated). >>> >>> *Is it an expected behavior?* >>> >>> A way to avoid this problem would be not to use inverse_of, or to have >>> "autovalidate: false" in the second model (Recurrence in my example) for >>> the has_one association. >>> >>-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/e13e4aef-5ca6-49d7-88fd-17d1c584bf1c%40googlegroups.com?hl=en-US. For more options, visit https://groups.google.com/groups/opt_out.
Hmm thanks. Is it worth it to report this to the Rails team? On Monday, June 3, 2013 5:17:37 PM UTC+2, Rick wrote:> > I just noticed that your error does, in fact, appear in my output. > However, if I run inside of the rails console I don''t see the redundant > "Here". i.e.: > > /Dagnan/rails_inverse_of 659 > rails c > Loading development environment (Rails 3.2.13) > irb(main):001:0> c = Campaign.new > => #<Campaign id: nil, created_at: nil, updated_at: nil, recurrence_id: > nil> > irb(main):002:0> c.recurrence = Recurrence.new > => #<Recurrence id: nil, created_at: nil, updated_at: nil> > irb(main):003:0> c.save! > (0.1ms) begin transaction > SQL (5.1ms) INSERT INTO "recurrences" ("created_at", "updated_at") > VALUES (?, ?) [["created_at", Mon, 03 Jun 2013 15:15:11 UTC +00:00], > ["updated_at", Mon, 03 Jun 2013 15:15:11 UTC +00:00]] > Here > SQL (0.5ms) INSERT INTO "campaigns" ("created_at", "recurrence_id", > "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 03 Jun 2013 15:15:11 > UTC +00:00], ["recurrence_id", 1], ["updated_at", Mon, 03 Jun 2013 15:15:11 > UTC +00:00]] > Here > (49.1ms) commit transaction > => true > irb(main):004:0> c > => #<Campaign id: 1, created_at: "2013-06-03 15:15:11", updated_at: > "2013-06-03 15:15:11", recurrence_id: 1> > irb(main):005:0> > > My guess is it''s a "test mode" artifact of some kind. > > > On Monday, June 3, 2013 11:13:26 AM UTC-4, Rick wrote: >> >> I cannot duplicate your error running your github example. Here''s what I >> see: >> >> /Dagnan/rails_inverse_of 656 > rails --version >> Rails 3.2.13 >> /Dagnan/rails_inverse_of 657 > ruby --version >> ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.3.0] >> /Dagnan/rails_inverse_of 658 > ruby -Itest test/unit/campaign_test.rb >> Run options: >> >> # Running tests: >> >> [1/1] CampaignTest#test_create_a_campaign_with_recurrenceHere >> Here >> Finished tests in 0.195217s, 5.1225 tests/s, 0.0000 assertions/s. >> 1 tests, 0 assertions, 0 failures, 0 errors, 0 skips >> >> ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.3.0] >> /Dagnan/rails_inverse_of 659 > >> >> On Monday, June 3, 2013 1:55:29 AM UTC-4, Michel Pigassou wrote: >>> >>> Help? >>> >>> On Friday, May 31, 2013 7:39:30 PM UTC+2, Michel Pigassou wrote: >>>> >>>> Hi. >>>> >>>> I created an app to illustrate my problem: >>>> https://github.com/Dagnan/rails_inverse_of >>>> >>>> I have a model with a belongs_to, and the other with a has_one. So far >>>> so good. >>>> When I configure the option inverse_of on both model and I perform a >>>> simple #save on the main object, it is actually saved two times (once saved >>>> and then updated). >>>> >>>> *Is it an expected behavior?* >>>> >>>> A way to avoid this problem would be not to use inverse_of, or to have >>>> "autovalidate: false" in the second model (Recurrence in my example) for >>>> the has_one association. >>>> >>>-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/6e59fec1-161b-4ae6-bb3a-2e7f09438291%40googlegroups.com?hl=en-US. For more options, visit https://groups.google.com/groups/opt_out.
might be worth spending some time to see if you can figure out where the extra "Here" comes from. i didn''t check the log to see if there was actually a redundant save of the record. could be an opportunity for you to plumb the mysteries of testing. think of what it did for heisenberg. On Monday, June 3, 2013 11:57:20 AM UTC-4, Michel Pigassou wrote:> > Hmm thanks. Is it worth it to report this to the Rails team? > > On Monday, June 3, 2013 5:17:37 PM UTC+2, Rick wrote: >> >> I just noticed that your error does, in fact, appear in my output. >> However, if I run inside of the rails console I don''t see the redundant >> "Here". i.e.: >> >> /Dagnan/rails_inverse_of 659 > rails c >> Loading development environment (Rails 3.2.13) >> irb(main):001:0> c = Campaign.new >> => #<Campaign id: nil, created_at: nil, updated_at: nil, recurrence_id: >> nil> >> irb(main):002:0> c.recurrence = Recurrence.new >> => #<Recurrence id: nil, created_at: nil, updated_at: nil> >> irb(main):003:0> c.save! >> (0.1ms) begin transaction >> SQL (5.1ms) INSERT INTO "recurrences" ("created_at", "updated_at") >> VALUES (?, ?) [["created_at", Mon, 03 Jun 2013 15:15:11 UTC +00:00], >> ["updated_at", Mon, 03 Jun 2013 15:15:11 UTC +00:00]] >> Here >> SQL (0.5ms) INSERT INTO "campaigns" ("created_at", "recurrence_id", >> "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 03 Jun 2013 15:15:11 >> UTC +00:00], ["recurrence_id", 1], ["updated_at", Mon, 03 Jun 2013 15:15:11 >> UTC +00:00]] >> Here >> (49.1ms) commit transaction >> => true >> irb(main):004:0> c >> => #<Campaign id: 1, created_at: "2013-06-03 15:15:11", updated_at: >> "2013-06-03 15:15:11", recurrence_id: 1> >> irb(main):005:0> >> >> My guess is it''s a "test mode" artifact of some kind. >> >> >> On Monday, June 3, 2013 11:13:26 AM UTC-4, Rick wrote: >>> >>> I cannot duplicate your error running your github example. Here''s what >>> I see: >>> >>> /Dagnan/rails_inverse_of 656 > rails --version >>> Rails 3.2.13 >>> /Dagnan/rails_inverse_of 657 > ruby --version >>> ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.3.0] >>> /Dagnan/rails_inverse_of 658 > ruby -Itest test/unit/campaign_test.rb >>> Run options: >>> >>> # Running tests: >>> >>> [1/1] CampaignTest#test_create_a_campaign_with_recurrenceHere >>> Here >>> Finished tests in 0.195217s, 5.1225 tests/s, 0.0000 assertions/s. >>> 1 tests, 0 assertions, 0 failures, 0 errors, 0 skips >>> >>> ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.3.0] >>> /Dagnan/rails_inverse_of 659 > >>> >>> On Monday, June 3, 2013 1:55:29 AM UTC-4, Michel Pigassou wrote: >>>> >>>> Help? >>>> >>>> On Friday, May 31, 2013 7:39:30 PM UTC+2, Michel Pigassou wrote: >>>>> >>>>> Hi. >>>>> >>>>> I created an app to illustrate my problem: >>>>> https://github.com/Dagnan/rails_inverse_of >>>>> >>>>> I have a model with a belongs_to, and the other with a has_one. So far >>>>> so good. >>>>> When I configure the option inverse_of on both model and I perform a >>>>> simple #save on the main object, it is actually saved two times (once saved >>>>> and then updated). >>>>> >>>>> *Is it an expected behavior?* >>>>> >>>>> A way to avoid this problem would be not to use inverse_of, or to have >>>>> "autovalidate: false" in the second model (Recurrence in my example) for >>>>> the has_one association. >>>>> >>>>-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/dd609006-ced8-4dff-b99f-d5838b70e31d%40googlegroups.com?hl=en-US. For more options, visit https://groups.google.com/groups/opt_out.