由于某些原因,我不明白为什么嵌套的元素没有出现在这个编辑表单中。
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时什么也没有出现,而且我也尝试过调用:pages,它返回了一个页面数组,所以我不明白为什么没有构建表单。
我是否忽略了需要更改的模型中的某些内容?
发布于 2012-06-19 18:25:34
尝试使用
<%= form_for(@book) do |f| %>而不是
<%= form_for(:book) do |f| %>发布于 2012-06-19 16:58:23
您可能需要添加
attr_accessible :pages_attributes 添加到Book模型
发布于 2012-06-19 20:21:09
尝试使用build。
def edit
@book = Book.find(params[:id])
@book.pages.build
endhttps://stackoverflow.com/questions/11096180
复制相似问题