0

出于某种原因,我无法弄清楚为什么嵌套元素没有出现在这个编辑表单中。

class Book < ActiveRecord::Base
  has_many :pages
  accepts_nested_attributes_for :pages
end

class Page < ActiveRecord::Base
  belongs_to :book
end

这是表格

<%= form_for(:book) do |f| %>
  <p><%= f.text_field(:title) %></p>
  <%= f.fields_for :pages do |page| %>
    <p><%= page.text_field(:page_no) %></p>
  <% end %>
<% end %>

控制器

def edit
    @book = Book.find(params[:id])
end

page_no它显示书名,但在列出s时什么也没有出现。我也尝试调用:pages它并返回一个页面数组,所以我不明白为什么没有构建表单。

我是否忽略了模型中需要更改的内容?

4

3 回答 3

0

您可能需要添加

attr_accessible :pages_attributes 

到书模型

于 2012-06-19T08:58:22.703 回答
0

尝试

<%= form_for(@book) do |f| %>

代替

<%= form_for(:book) do |f| %>
于 2012-06-19T10:25:34.197 回答
-1

尝试使用构建。

def edit
  @book = Book.find(params[:id])
  @book.pages.build
end
于 2012-06-19T12:21:08.763 回答