Rails视图[迷惑指南]

时间:2013-02-15 07:26:36

标签: ruby-on-rails ruby-on-rails-3

我对以下几行感到困惑:

    <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'是传递变量吗?

2 个答案:

答案 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,相应的图书页面将被删除,并且不会显示在视图中。