我正在寻找示例,但发现很少有事情,因为一切似乎都倾向于ActiveRecord。我理解了我所看到的基本概念,并且我正在使用Datamapper(dm-accepts_nested_attributes更具体)来做这件事。更多细节可以在这里找到:nested forms for 2 models in rails using dm-accepts_nested_attributes and dm-is-tree
我有一个Post的两个模型表单,包含一些文本和一个Image,就是这样。模型与具有n个图像的Post和属于帖子的图像相关联。
我已经过了很多不同的搜索和博客文章,但是我发现没有项目或示例可以查看,文档很少。我也是一个学习者/初学者/有点密集。我在这里问两个原因:完成我目前的问题,所以未来的提问者有一个值得关注的地方。
使用rails形式的多个模型似乎有点复杂并且不容易实现,或者它确实存在但是我还没想到它。
答案 0 :(得分:2)
所以,这是我从类似应用程序中提取的一些代码(Rails 3 + DataMapper + dm-accepts_nested_attributes + Haml)。在我的例子中,我有一个医疗实践,它有许多administrators_practices,并且有很多管理员通过administrators_practices。这是模型的相关部分:
has n, :administrators_practices
has n, :administrators, :through => :administrators_practices
accepts_nested_attributes_for :administrators
然后,在我看来,我有这样的事情:
%h1 Practice Setup
%ol
= form_for @practice do |f|
%li
= f.label :name
= f.text_field :name
= f.fields_for :administrators do |administrator_builder|
%li
= administrator_builder.label :name, "Administrators Name"
= administrator_builder.text_field :name
%li
= administrator_builder.label :email
= administrator_builder.text_field :email
%li
= administrator_builder.label :password
= administrator_builder.password_field :password
那应该有用。诀窍是使用fields_for并创建一个新的表单生成器。然后,您可以将它视为主要模型的一部分。
如果你遇到困难,可以分开。当我学习将这些东西放在一起时,我会先在模型上工作,然后尝试在那里创建一个嵌套模型。然后,我将构建我的视图,并在我的控制器内运行一个调试器,以确保我在params对象中获得正确的信息。有时我可以玩params足以看到它应该是什么,然后返回并更新我的视图以使表格以正确的方式构建。
答案 1 :(得分:0)