0
我跟着Getting Started With Rails tutorial建立了一个带有注释的简单博客。Rails:使用相同的部分创建和编辑嵌套项目
我去应用它到我自己的场景:历史项目的历史。直到我意识到我需要有能力编辑这些历史项目(有点像编辑评论)之前,一切都是或多或少的好。
我知道了,所以在显示历史项目的部分上有一个“编辑项目”链接。它似乎击中历史项目控制器中的编辑操作。但是我得到一个空白字段的表单,在该按钮上显示“创建”。从局部
链接,显示了历史项:
<%= link_to 'Edit Item', edit_history_history_item_path(history_item.history, history_item) %>
在历史项目控制器的编辑动作:
def edit
@history = History.find(params[:history_id])
@history_item = HistoryItem.find(params[:id])
end
的edit.html.rb页面的部分引用部分:
<%= render 'form' %>
局部本身:
<%= form_for([@history, @history.history_items.build]) do |f| %>
<div class="field">
<%= f.label :title %><br />
<%= f.text_field :title %>
</div>
(blah blah lots more fields)
<div class="actions">
<%= f.submit %>
</div>
<% end %>
我注意到在部分顶部的“@ history.history_items”末尾的.build。我认为这是创建引用始发历史记录(或博客文章)的新历史记录项(或对博客文章的新评论)所必需的。有什么办法可以保留这部分,因为它是一个新的历史项目,但是当我想编辑一个现有的项目时以另一种方式做它?
谢谢!在此之后,我的电话包括添加项目部分变成: '<%= render“history_items/form”,history_item:@ history.history_items.build%>' 此外,我没有一个普通的节目单独查看历史记录项目,所以在我从历史记录中引入历史记录的更新操作中,然后执行此操作 - 否则它与原始教程中的博客文章更新几乎相同。 – 2013-05-13 17:08:15