我正在构建一个开源电子表格应用程序。到目前为止,它的rails应用程序有4个模型:table,row,column和item。
这是他们的样子:
Table.rb:
has_many :columns
has_many :rows
accepts_nested_attributes_for :columns
Column.rb
belongs_to :table
has_many :items
Row.rb
belongs_to :table
has_many :items
accepts_nested_attributes_for :items
item.rb的
belongs_to :row
在添加新行的页面上。你应该得到这样的东西:
因此列已经设置好,所以现在要添加新的项,插入时应包含 row_id , column_id 和<每个项目的强>值。
到目前为止,我的表单看起来像这样:
<%= nested_form_for [@table, @row] do |f| %>
<% @columns.each do |column| %>
<%= column.name %> <br>
<%= f.fields_for :items do |item_form| %>
<%= item_form.text_field :value %>
<% end %>
<% end%>
<%= f.submit %>
<% end %>
我正在使用nested_form作为嵌套表单。但到目前为止,我无法获得项目值显示的文本框。另外,这是获得我想要的最好的方式(如图片),还是有更清洁的方式?
感谢您的帮助!
答案 0 :(得分:0)
您需要为fields_for构建至少1个项目才能呈现任何内容。尝试在new
控制器操作中执行此操作。
def new
...
@row.items.build
end