У меня есть модель с примерно 40 полями формы. Затем у меня есть 3 поля в форме, принадлежащей модели Child. Это: возраст, пол: дом.Как сохранить модель с accepts_nested_attributes_for?
Я просмотрел документацию для accepts_nested_attributes_for и немного запутался в том, как сохранить дочернюю модель в базе данных.
В моей UsersController У меня есть следующие:
@user = User.new(params[:user])
...
@user.save
Теперь в документации Rails они есть модель с именем элемента и внутри него, он has_many: посты и accepts_nested_attributes_for: посты. Они сохранить модель члена, как это:
params = { :member => {
:name => 'joe', :posts_attributes => [
{ :title => 'Kari, the awesome Ruby documentation browser!' },
{ :title => 'The egalitarian assumption of the modern citizen' },
{ :title => '', :_destroy => '1' } # this will be ignored
]
}}
member = Member.create(params['member'])
Но у меня уже есть эквивалент Params [:] членов с Params [: пользователя]. Мои поля 3 Child:: age,: gender и: home находятся в params [: age], params [: gender] и params [: home]. Поэтому, я думаю, мой вопрос заключается в том, как сохранить модель пользователя и сохранить 3 дочерних поля в модели Child?
Спасибо @Zajn. Это многое объясняет. Но, по-моему, я оставил большую часть моего вопроса. Эти дочерние поля динамически генерируются в зависимости от того, сколько детей указано пользователем. Итак, тогда я бы сохранил поля Child так? @ user.children.build (возраст: params [: age1], пол: params [: gender1], home: params [: home1]) – mikeglaz
Да, это работает! – mikeglaz