我有2个控制器:models_controller
和portfolios_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
请查看上面提供的链接。
答案 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 %>