Ruby on Rails——一個完整的例子(八)

本節是關於這個blog項目的article相關的例子的最後一節,讓我們一起來學習一下如何刪除一個article。

要實現刪除的動作,我們需要在controller中添加destroy方法,在destroy方法中,我們需要知道要刪除的對象,所以至少需要把article的id作爲參數傳遞過來。

def destroy

  @article = Article.find(params[:id])

  @article.destroy

 

  redirect_to articles_path

end

 對應controller裏的create方法,我們新建了一個view(new.html.erb);對應controller裏的update方法,我們也新建了一個view(edit.html.erb);而針對現在的destroy,我們不需要新建一個view與之相對應,因爲刪除不需要獨立的頁面與之對應,我們刪除之後只需返回list頁面就可以了。(對應我們之前完成的index.html.erb)

我們需要在這個view中加入destroy的操作,對其修改如下:

<h1>Listing Articles</h1>

<%= link_to 'New article', new_article_path %>

<table>

  <tr>

    <th>Title</th>

    <th>Text</th>

    <th colspan="3"></th>

  </tr>

 

  <% @articles.each do |article| %>

    <tr>

      <td><%= article.title %></td>

      <td><%= article.text %></td>

      <td><%= link_to 'Show', article_path(article) %></td>

      <td><%= link_to 'Edit', edit_article_path(article) %></td>

      <td><%= link_to 'Destroy', article_path(article),

              method: :delete,

              data: { confirm: 'Are you sure?' } %></td>

    </tr>

  <% end %>

</table>

我們發現在article的表單中,destroy的部分額多了兩個參數,一個是method,一個是data。method指定的delete告訴Rails我們要執行的命令,data部分則彈出一個確認對話框,方便用戶確認是否執行該刪除操作。如果用戶確認了,那麼Rails會執行delete命令。

啓動rails server之後,我們看到的效果如下:

點擊Destroy之後,

 

然後我們點擊確定,

 

這樣,刪除記錄的操作我們就完成了。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章