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?

                    革兰氏阴性菌

                    How should I tell a customer about typographic mistakes?