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