2013-02-15 66 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