rom-rb / rom

Data mapping and persistence toolkit for Ruby
https://rom-rb.org
MIT License
2.08k stars 161 forks source link

Changeset for combined relations #492

Open drqCode opened 6 years ago

drqCode commented 6 years ago
class Users < ROM::Relation[:sql]
     schema(:users, infer: true) do
       associations do
          has_many :tasks
      end
     end
  end

  class Tasks < ROM::Relation[:sql]
     schema(:users, infer: true) do
        associations do
           belongs_to :user
        end
     end
  end

  class UserRepo < ROM::Repository[:users]
    # new_user = { name: "Jim", tasks: [{desc: "test"}, {desc: "test1"}]}
     def create(new_user)
        users.transaction do
           users.combine(:tasks).changeset(:create, new_user).commit
       end
     end
  end

It seems that users.combine(:tasks).changeset(:create, new_user).commit just inserts only the aggregate root.