mongoidを使用してネストされた属性を持つフォームを作成しようとしています。フォームから返されるのparamsは、次の順序であるmongoidのネストされた属性の規約を受け入れる
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
:Company.create([:会社]のparams)を呼び出し
"company"=>
{"users_attributes"=>
{"0"=>
{"profile_attributes"=>
{"first_name"=>"123123abcd123", "last_name"=>"abcd123123123"},
"email"=>"[email protected]",
"password"=>"123123123123",
"password_confirmation"=>"123123123123"}},
"name"=>"abcd123123123",
"subdomain"=>"abcd123123123"}
が動作しているようですが、私のモデルには、次のコードを持っていますただし、ユーザーオブジェクトを適切に作成していません。私はcompany.usersを行うとき、私はそのオブジェクトを見ることができますが、User.findを実行すると、そのドキュメントは利用できません。
"company"=>
{"users_attributes"=>
[{"profile_attributes"=>
{"first_name"=>"123123123", "last_name"=>"123123123"},
"email"=>"[email protected]",
"password"=>"123123",
"password_confirmation"=>"123123"}],
"name"=>"abcd123123123",
"subdomain"=>"abcd123123123"}
注代わりにハッシュのusers_attributesの配列を用いての微妙な違いを:ドキュメンテーションを読んで私は、paramsは、以下の方法で渡さなければならないことに気づきました。これは正しく動作しますが、Active Recordのようなものではなく、レールのようなものでなければなりません。私はparamsハッシュを取って、特定の規則に従うようにデータを修正したくありません。もっと良い方法がありますか、私は何かを逃していますか?