0

「チケットのインデックス」にリンクを作成して「編集」ページにリンクしようとしています。(下の図を参照してください) 現在、「0.0.0.0:3000/tickets/1/edit」と入力して、編集ページに移動できます。しかし、このページへのリンクの仕方がわかりません。いくつかの指針を教えていただけますか?

ご指導ありがとうございました。

注: 私は RoR を学んでおり、raistutorial.org に基づいてこのページを作成しています。

次の写真の場所で立ち往生しています

4

4 に答える 4

1

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_pathedit_ticket_url

rake routesの出力を自分の出力と比較してconfig/routes.rb、レールの規則と豊富なルートを十分に理解していることを確認すると便利です。

于 2012-07-28T11:02:24.910 に答える
0
<%= link_to 'edit', edit_ticket_path(ticket) %>
于 2012-07-28T10:02:09.657 に答える
0
<%= link_to edit_ticket_path(ticket) %>

自分でこれを見つける方法の 1 つ: scaffold を使用している場合、show.html.erb ページに編集リンクがあります。参照しているチケットのインスタンスを交換する例としてこれを使用できます。

注: link_to の :method オプションは、GET、PUT、POST、DELETE の http メソッドを参照しますが、コントローラー アクションは参照しません!

于 2012-07-28T10:02:32.813 に答える
0

この:method属性は、HTTP 属性、つまり POST、GET、PUT、DELETE、UPDATE、HEAD などを指定します。

ここでは、2 番目のパラメーターにチケット編集リンクへのパスを指定する必要があります。

それは次のように行うことができます:

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

ただし、単に を実行すると<%= link_to "show", ticket %>、Rails はそれが必要な表示ページであると自動的に推測します。

于 2012-07-28T10:03:20.910 に答える