首页 文章

rails嵌套属性

提问于
浏览
2

我正在使用rails 3.0.0.beta3,我正在尝试使用嵌套属性实现表单:accepts_nested_attributes_for .

我的表格嵌套到三个层次:调查>>问题>>答案 .

调查has_many问题,问题有很多答案 .

在Survey模型中,有:accepts_nested_attributes_for:questions

在问题模式中,有:accepts_nested_attributes_for:answers

一切都工作正常,除非我在现有问题上添加新答案时,它不会被创建 . 但是,如果我在创建答案时对相应的问题进行了更改,我可以成功创建答案 .

此示例与railscast完全相似:http://railscasts.com/episodes/197-nested-model-form-part-2

但是在rails3中不起作用(至少在我的情况下) .

如果Rails 3中存在嵌套属性的任何问题,请告诉我 .

提前致谢 .

2 回答

  • 0

    看一下关于那个railscast的评论93(由Casper Fabricus提供) . 他说你必须在帮助器的“link_to_add_fields”方法中将“[]”放在“new_object”周围 .

    也许这就是你要打的?

  • 2

    如果您使用的是 attr_accessible ,请确保包含嵌套属性

    class Survey < ActiveRecord::Base
      accepts_nested_attributes_for :questions
      attr_accessible :questions_attributes
    end
    
    class Question < ActiveRecord::Base
      accepts_nested_attributes_for :answers
      attr_accessible :answers_attributes
    end
    

    此外,如果您仍然遇到问题,请参阅我在此处关于嵌套属性和模型验证的评论 . Validations misfiring in a form with multiple models

相关问题