iT邦幫忙

DAY 5
0

Ruby on Rails 實戰聖經 - 初心者的30天學習記錄系列 第 5

Ruby on Rails實戰聖經 (05) - CRUD - 列出所有資料

  • 分享至 

  • xImage
  •  

首先打開config/route.rb 設定專案的路由路徑
加入 resources :guests
並將 localhost:3000/guests 設定為首頁 => 加入root 'guest#index'

為了要在index列出所有資料,編輯controller/guests_controller.rb加入:

def index
@guest = Guest.all
end

Guest.all會抓出所有的資料,回傳一個陣列給實例變數(instance variables)指派給 @guest

在Rails會讓Action裡的實例變數(也就是有@開頭的變數)通通傳到View樣板裡面可以使用。這個Action預設使用的樣板是app/views/guests/目錄下與Action同名的檔案,也就是接下來要編輯的app/views/guests/index.html.erb,修改內容如下:

<ul>
<% @guest.each do |guest| %>
<li>
<%= guest.title %>
<%= link_to 'Show', :controller => 'guests', :action => 'show', :id => guest %>
<%= link_to 'Edit', :controller => 'guests', :action => 'edit', :id => guest %>
<%= link_to 'Delete', :controller => 'guests', :action => 'destroy', :id => guest %>
</li>
<% end %>
</ul>

<%= link_to 'Add post', :controller => 'guests', :action => 'new' %>

這邊@guest.each do |guest| 的意思是 @guest這個實例變數(目前是陣列)的每一個欄位都要執行一次do到end中間的程式,也就是先印出每則貼文的title,並在後方加上連到show、edit、destroy這三個action的link。

<%= link_to 'Show', :controller => 'guests', :action => 'show', :id => guest %> 

這行轉成html就是

<a href="guests/show/guest.id"> Show </a>

*編輯修正10/6:修正link_to這邊的:id 應為 => guest,而非@guest


上一篇
Ruby on Rails實戰聖經 (04) - 版本控制
下一篇
Ruby on Rails實戰聖經 (06) - 新增資料
系列文
Ruby on Rails 實戰聖經 - 初心者的30天學習記錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言