2013-02-15 76 views
0

我一直困惑的下面幾行:Rails的意見[由導混淆]

<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(書)'?你能解釋一下這是什麼意思嗎?它看看控制器'本書',並檢查控制器方法'編輯',同時傳遞變量書嗎?

什麼是<%= link_to 'Show', book %>?是否轉到控制器方法'show'?或者顯示'show'? 'book'是傳遞變量嗎?

回答

1
1) <%= link_to 'Show', book %> 
    # => <a href="/resource/show/1">Show</a> 

這意味着Show是鏈路的鏈路和路徑book顯現。所以如果你點擊Show,相應的書會顯示。

這裏書的id爲1.所以你說,id = 1的書被顯示。

實施例:

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,相應的書頁將被刪除,並且不會顯示在視圖中。

3

路徑由ruby的路由生成。您可以通過運行rake routes來獲得應用程序中可用路線的列表,該列表將解析您的config/routes.rb文件並給出路線及其各自路徑的列表。該命令的輸出應該包含edit_book_path,該文件可能由config/routes.rb文件中的resources :books行生成。

+0

看看這個Rails指南(特別是這些部分)的更多信息:http://guides.rubyonrails.org/routing.html#paths-and-urls和http://guides.rubyonrails.org/routing。 HTML#創建路徑和的URL,從對象 – 2013-02-15 07:29:48