Rails的意见[由导混淆]
问题描述:
我一直困惑的下面几行: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) <%= 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
,相应的书页将被删除,并且不会显示在视图中。
答
路径由ruby的路由生成。您可以通过运行rake routes
来获得应用程序中可用路线的列表,该列表将解析您的config/routes.rb
文件并给出路线及其各自路径的列表。该命令的输出应该包含edit_book_path,该文件可能由config/routes.rb
文件中的resources :books
行生成。
看看这个Rails指南(特别是这些部分)的更多信息:http://guides.rubyonrails.org/routing.html#paths-and-urls和http://guides.rubyonrails.org/routing。 HTML#创建路径和的URL,从对象 – 2013-02-15 07:29:48