「チケットのインデックス」にリンクを作成して「編集」ページにリンクしようとしています。(下の図を参照してください) 現在、「0.0.0.0:3000/tickets/1/edit」と入力して、編集ページに移動できます。しかし、このページへのリンクの仕方がわかりません。いくつかの指針を教えていただけますか?
ご指導ありがとうございました。
注: 私は RoR を学んでおり、raistutorial.org に基づいてこのページを作成しています。
「チケットのインデックス」にリンクを作成して「編集」ページにリンクしようとしています。(下の図を参照してください) 現在、「0.0.0.0:3000/tickets/1/edit」と入力して、編集ページに移動できます。しかし、このページへのリンクの仕方がわかりません。いくつかの指針を教えていただけますか?
ご指導ありがとうございました。
注: 私は RoR を学んでおり、raistutorial.org に基づいてこのページを作成しています。
http://guides.rubyonrails.org/routing.htmlconfig/routes.rb
によると、でリソースの豊富なルートを使用するという規則に従うと、適切なパスと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_path
edit_ticket_url
rake routes
の出力を自分の出力と比較してconfig/routes.rb
、レールの規則と豊富なルートを十分に理解していることを確認すると便利です。
<%= link_to 'edit', edit_ticket_path(ticket) %>
<%= link_to edit_ticket_path(ticket) %>
自分でこれを見つける方法の 1 つ: scaffold を使用している場合、show.html.erb ページに編集リンクがあります。参照しているチケットのインスタンスを交換する例としてこれを使用できます。
注: link_to の :method オプションは、GET、PUT、POST、DELETE の http メソッドを参照しますが、コントローラー アクションは参照しません!
この:method
属性は、HTTP 属性、つまり POST、GET、PUT、DELETE、UPDATE、HEAD などを指定します。
ここでは、2 番目のパラメーターにチケット編集リンクへのパスを指定する必要があります。
それは次のように行うことができます:
<%= link_to "edit", edit_ticket_path(ticket) %>
ただし、単に を実行すると<%= link_to "show", ticket %>
、Rails はそれが必要な表示ページであると自動的に推測します。