0

私は次の行に混乱しています:

    <td><%= link_to 'Show', book %></td>
    <td><%= link_to 'Edit', edit_book_path(book) %></td>
    <td><%= link_to 'Remove', book, :confirm => 'Are you sure?', :method => :delete %></td>

から

http://guides.rubyonrails.org/layouts_and_rendering.html

'edit_book_path(book)' は何を定義していますか? それが何を意味するのか説明できますか?コントローラー「book」を見て、変数 book を渡しながらコントローラーメソッド「 edit 」をチェックしますか?

とは<%= link_to 'Show', book %>? コントローラーメソッド「show」に行きますか?または「ショー」を表示しますか?「book」は渡された変数ですか?

4

2 に答える 2

3

パスは ruby​​ のルートによって生成されます。を実行すると、アプリケーションで使用可能なルートのリストを取得できますrake routes。これにより、ファイルが解析されconfig/routes.rb、ルートとそれぞれのパスのリストが表示されます。そのコマンドの出力には、おそらくファイル内のresources :books行によって生成された edit_book_path が含まれているはずです。config/routes.rb

于 2013-02-15T07:28:37.617 に答える
1
1) <%= link_to 'Show', book %>
    # => <a href="/resource/show/1">Show</a>

これは、それShowがリンクであり、そのリンクのパスがbook表示されることを意味します。をクリックするShowと、対応する本が表示されます。

ここでは book の id は 1 です。つまり、id = 1 の book が表示されるということです。

例:

link_to "Profile", :controller => "profiles", :action => "show", :id => @profile
# => <a href="/profiles/show/1">Profile</a>

同様に、

link_to "Profiles", profiles_path
# => <a href="/profiles">Profiles</a>

上記のリンクにはProfilesリンクprofilesとして、パスとしてへのパスがあります。

2) <td><%= link_to 'Edit', edit_book_path(book) %></td>
            #=> <a href="/book/1/edit">Edit</a>

これは、Editがリンクであり、そのリンクのパスがbook編集対象であることを意味します。をクリックするEditと、対応する本のページが編集用に表示されます。

3) <td><%= link_to 'Remove', book, :confirm => 'Are you sure?', :method => :delete  %></td>
    #=> <a href=book rel="nofollow" data-method="delete" data-confirm="Are you sure?">Remove</a>

これは、それRemoveがリンクであり、そのリンクのパスがbook削除されることを意味します。をクリックするRemoveと、対応する本のページが削除され、ビューに表示されなくなります。

于 2013-02-15T08:27:08.607 に答える