我对以下几行感到困惑:
<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 '并在传入变量簿时检查控制器方法'edit'?
什么是<%= link_to 'Show', book %>
?它是否转到控制器方法'show'?还是显示'show'? 'book'是传递变量吗?
答案 0 :(得分:3)
路径由ruby的路线生成。您可以通过运行rake routes
来获取应用程序中可用路由的列表,该列表将解析您的config/routes.rb
文件,并为您提供路由列表及其各自的路径。该命令的输出应包括edit_book_path,它可能由resources :books
文件中的config/routes.rb
行生成。
答案 1 :(得分: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
,相应的图书页面将被删除,并且不会显示在视图中。