Accepts nested attribute agreement for mongoid

I am trying to create a form with nested attributes using mongoid. My models have the following code:

def Company
  field :name

  has_many :users, autosave: true, dependent: :destroy
  accepts_nested_attributes_for :users
end

def User
  belongs_to :company
  has_one :profile
end

def Profile
  belongs_to :user
end

The parameters returned from the form are in the following order:

"company"=>
  {"users_attributes"=>
    {"0"=>
      {"profile_attributes"=>
        {"first_name"=>"123123abcd123", "last_name"=>"abcd123123123"},
       "email"=>"abcd@abcd.com123123123",
       "password"=>"123123123123",
       "password_confirmation"=>"123123123123"}},
   "name"=>"abcd123123123",
   "subdomain"=>"abcd123123123"}

Calling Company.create (params [: company]) seems to work, however it does not create a custom object. When I do company.users, I can see this object, BUT, when I do User.find, this document is not available. Reading the documentation, I realized that the parameters should be passed as follows:

"company"=>
  {"users_attributes"=>
    [{"profile_attributes"=>
       {"first_name"=>"123123123", "last_name"=>"123123123"},
      "email"=>"testin321@gmail.com",
      "password"=>"123123",
      "password_confirmation"=>"123123"}],
   "name"=>"abcd123123123",
   "subdomain"=>"abcd123123123"}

users_attributes . , , Active Record ( - ). param , . , - ?

+3
2

inputs as user_attributes[], .

, user_attributes[0][profile_attributes] ( , - )

user_attributes[][profile_attributes]

0

? , . ( , , .)

. , , , . , , .

def User
  belongs_to :company
  has_one :profile, dependent: destroy, autosave: true
  accepts_nested_attributes_for :profile
end

, - , .

0

All Articles