2012-07-28 128 views
0

我正嘗試在「票據索引」上創建鏈接以鏈接到「編輯」頁面。 (請參閱下圖) 現在我可以輸入「0.0.0.0:3000/tickets/1/edit」進入編輯頁面。 但是,我不確定如何鏈接到此頁面。 你能給我一些指點嗎?RoR:鏈接到頁面

感謝您的指導。

注: 我基於raistutorial.org學習RoR的&創建這個頁面

I am stuck at the location of the following picture

回答

0
<%= link_to 'edit', edit_ticket_path(ticket) %> 
+0

謝謝你的回答 – 2012-07-29 03:05:49

0
<%= link_to edit_ticket_path(ticket) %> 

一個技巧,你怎麼會發現了這一點自己:如果你使用腳手架,在show.html.erb頁面上有一個編輯鏈接 - 您可以僅以此爲例來交換它所涉及的故障單的實例。

注意:link_to的:method選項指的是http方法,它可以是GET,PUT,POST,DELETE,但不是控制器操作!

+0

謝謝你的答案和有關腳手架的提示。我學到了一些新的東西:) – 2012-07-29 03:06:21

0

:method屬性指定HTTP屬性,即POST,GET,PUT,DELETE,UPDATE,HEAD和任何其他屬性。

這裏您需要提供第二個參數中的故障單編輯鏈接的路徑。

,可以這樣進行:

<%= link_to "edit", edit_ticket_path(ticket) %> 

然而,當你做到這<%= link_to "show", ticket %>,Rails會自動推斷這是你想要的顯示頁面。

+0

非常感謝你的回答和解釋:方法屬性指定HTTP屬性:) – 2012-07-29 03:07:37

1

當您遵循在config/routes.rb中使用智慧路由的慣例(根據http://guides.rubyonrails.org/routing.html),那麼您可以獲得可用的良好路徑和url助手。

要查看路徑可用,只需運行rake routes,你會看到輸出如下:

% rake routes 

    tickets GET /tickets(.:format)   tickets#index 
      POST /tickets(.:format)   tickets#create 
new_ticket GET /tickets/new(.:format)  tickets#new 
edit_ticket GET /tickets/:id/edit(.:format) tickets#edit 
    ticket GET /tickets/:id(.:format)  tickets#show 
      PUT /tickets/:id(.:format)  tickets#update 
      DELETE /tickets/:id(.:format)  tickets#destroy 

從這一點,我們可以看到,有一個名爲路線edit_ticket,所以我們可以使用edit_ticket_pathedit_ticket_url傭工(後者將包括域名,並且對電子郵件等事情很有用)。

rake routes的輸出與您在config/routes.rb中的輸出進行比較以確保您對軌道慣例和豐富路線有良好的理解,這一點很有用。

+0

謝謝本引入「耙路線」。這對我很有幫助:) – 2012-07-29 03:08:16