2个视图中来自单独控制器的表单

时间:2011-07-18 01:46:53

标签: ruby-on-rails

我有2个控制器:models_controllerportfolios_controller

我希望在一个视图中显示所有表单并立即填写所有数据,而不是单独填写这些表单。

以下是 2合1表格我正在努力开展工作:https://github.com/imjp/models/blob/master/app/views/models/_form.html.erb

根据当前的最佳做法,实现目标的最简单方法是什么?


编辑1:我找到了一种方法在1个视图中一起显示表单但有一个问题,原始表单中的提交按钮如果需要抛出验证错误就会抛出错误: undefined method 'model_name' for NilClass:Class

请查看上面提供的链接。

1 个答案:

答案 0 :(得分:1)

model:has_one portfolio 以来,rails最佳做法是nested_attributes

#Model (https://github.com/imjp/models/blob/master/app/models/model.rb)
class Model < ActiveRecord::Base
...
  accepts_nested_attributes_for :portfolio
...
end


#View (https://github.com/imjp/models/blob/master/app/views/models/_form.html.erb)
<% fields_for :portfolio |portfolio_form| %>
  ... 
  <div class="field">
    <%= portfolio_form.label :model_id %><br />
    <%= portfolio_form.number_field :model_id %>
  </div>
  ...
<% end %>