Delete all associations from duplicated object











up vote
0
down vote

favorite












When duplicating an object with object_dup = object.dup, all associations are copied.



object_dup.foos == object.foos


I would like to duplicate/clone object without its associations, or delete the associations all after duplication. I would like to destroy all duplicated associations on object_dup. It might be easier to just create a new object, but duplication saves me from property-setting-hell.



Is that possible?










share|improve this question




























    up vote
    0
    down vote

    favorite












    When duplicating an object with object_dup = object.dup, all associations are copied.



    object_dup.foos == object.foos


    I would like to duplicate/clone object without its associations, or delete the associations all after duplication. I would like to destroy all duplicated associations on object_dup. It might be easier to just create a new object, but duplication saves me from property-setting-hell.



    Is that possible?










    share|improve this question


























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      When duplicating an object with object_dup = object.dup, all associations are copied.



      object_dup.foos == object.foos


      I would like to duplicate/clone object without its associations, or delete the associations all after duplication. I would like to destroy all duplicated associations on object_dup. It might be easier to just create a new object, but duplication saves me from property-setting-hell.



      Is that possible?










      share|improve this question















      When duplicating an object with object_dup = object.dup, all associations are copied.



      object_dup.foos == object.foos


      I would like to duplicate/clone object without its associations, or delete the associations all after duplication. I would like to destroy all duplicated associations on object_dup. It might be easier to just create a new object, but duplication saves me from property-setting-hell.



      Is that possible?







      ruby-on-rails associations






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited yesterday









      sawa

      128k27191296




      128k27191296










      asked yesterday









      theDrifter

      66611028




      66611028
























          1 Answer
          1






          active

          oldest

          votes

















          up vote
          0
          down vote













          Actually .dup method didn't duplicate associations, it just copy the foreign key (parents).



          Examples:



          # Original
          my_post = Post.first
          => #<Post id: 1, title: 'blabla', category_id: 10>

          # Duplicate
          my_post.dup
          => #<Post id: nil, title: 'blabla', category_id: 10>

          # Have the same category_id (10)


          My best way to duplicate without some attributes :



          Post.new(my_post.attributes.slice('titles'))
          => #<Post id: nil, title: 'blabla', category_id: nil>


          Here we creating a new empty Post, get original post attributes with my_post.attributes and slice only attributes we want with slice('title') (accept multiples attributes, examples: slice('title', 'content', 'tags'))



          .dup Documentation



          .slice Documentation






          share|improve this answer





















            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














             

            draft saved


            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53204366%2fdelete-all-associations-from-duplicated-object%23new-answer', 'question_page');
            }
            );

            Post as a guest
































            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            0
            down vote













            Actually .dup method didn't duplicate associations, it just copy the foreign key (parents).



            Examples:



            # Original
            my_post = Post.first
            => #<Post id: 1, title: 'blabla', category_id: 10>

            # Duplicate
            my_post.dup
            => #<Post id: nil, title: 'blabla', category_id: 10>

            # Have the same category_id (10)


            My best way to duplicate without some attributes :



            Post.new(my_post.attributes.slice('titles'))
            => #<Post id: nil, title: 'blabla', category_id: nil>


            Here we creating a new empty Post, get original post attributes with my_post.attributes and slice only attributes we want with slice('title') (accept multiples attributes, examples: slice('title', 'content', 'tags'))



            .dup Documentation



            .slice Documentation






            share|improve this answer

























              up vote
              0
              down vote













              Actually .dup method didn't duplicate associations, it just copy the foreign key (parents).



              Examples:



              # Original
              my_post = Post.first
              => #<Post id: 1, title: 'blabla', category_id: 10>

              # Duplicate
              my_post.dup
              => #<Post id: nil, title: 'blabla', category_id: 10>

              # Have the same category_id (10)


              My best way to duplicate without some attributes :



              Post.new(my_post.attributes.slice('titles'))
              => #<Post id: nil, title: 'blabla', category_id: nil>


              Here we creating a new empty Post, get original post attributes with my_post.attributes and slice only attributes we want with slice('title') (accept multiples attributes, examples: slice('title', 'content', 'tags'))



              .dup Documentation



              .slice Documentation






              share|improve this answer























                up vote
                0
                down vote










                up vote
                0
                down vote









                Actually .dup method didn't duplicate associations, it just copy the foreign key (parents).



                Examples:



                # Original
                my_post = Post.first
                => #<Post id: 1, title: 'blabla', category_id: 10>

                # Duplicate
                my_post.dup
                => #<Post id: nil, title: 'blabla', category_id: 10>

                # Have the same category_id (10)


                My best way to duplicate without some attributes :



                Post.new(my_post.attributes.slice('titles'))
                => #<Post id: nil, title: 'blabla', category_id: nil>


                Here we creating a new empty Post, get original post attributes with my_post.attributes and slice only attributes we want with slice('title') (accept multiples attributes, examples: slice('title', 'content', 'tags'))



                .dup Documentation



                .slice Documentation






                share|improve this answer












                Actually .dup method didn't duplicate associations, it just copy the foreign key (parents).



                Examples:



                # Original
                my_post = Post.first
                => #<Post id: 1, title: 'blabla', category_id: 10>

                # Duplicate
                my_post.dup
                => #<Post id: nil, title: 'blabla', category_id: 10>

                # Have the same category_id (10)


                My best way to duplicate without some attributes :



                Post.new(my_post.attributes.slice('titles'))
                => #<Post id: nil, title: 'blabla', category_id: nil>


                Here we creating a new empty Post, get original post attributes with my_post.attributes and slice only attributes we want with slice('title') (accept multiples attributes, examples: slice('title', 'content', 'tags'))



                .dup Documentation



                .slice Documentation







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered yesterday









                D1ceWard

                45328




                45328






























                     

                    draft saved


                    draft discarded



















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53204366%2fdelete-all-associations-from-duplicated-object%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest




















































































                    Popular posts from this blog

                    How to pass form data using jquery Ajax to insert data in database?

                    National Museum of Racing and Hall of Fame

                    Guess what letter conforming each word