Deep Nested Rails 4 Form

前端 未结 2 1765
名媛妹妹
名媛妹妹 2020-12-31 16:29

I have 3 models Item which accepts nested attributes for questions and questions accept nested attributes for answers. I\'m trying to create an item which has a question and

相关标签:
2条回答
  • 2020-12-31 17:01

    I think your problem is with your strong params:

    def item_params
          params.require(:item).permit(:id, :content, :kind, questions_attributes: [:content, :helper_text, :kind, answers_attributes: [:content, :correct]])
    end   
    

    Basically, when you pass a deep nested form (where you have multiple dependent models), you'll have to pass the attributes as part of the other model's attributes. You had the params as separate

    0 讨论(0)
  • 2020-12-31 17:12

    I run into a similar issue and, while Richard Peck answer helped me as well, there is one thing that it was missing for me.

    If you are deep-nesting you need to specify the id of the parent of the nested item. In this case to create an answers you need to make questions id explicit with q.input :id, otherwise you will run into this error.

    = simple_form_for(@item) do |f|
        = ...
        = f.simple_fields_for :questions do |q|
            = ...
            = q.input :id
            = q.simple_fields_for :answers do |a|
                = ...
        = f.submit
    
    0 讨论(0)
提交回复
热议问题