link_to机制如何在Ruby on Rails中运行

时间:2011-07-30 09:13:45

标签: ruby-on-rails

我按照给出的指示实施了官方Creating the Blog Application项目。但我不知道在这个项目中使用link_to的想法如下:

<td><%= link_to 'Show', post %></td>
<td><%= link_to 'Edit', edit_post_path(post) %></td>
<td><%= link_to 'Destroy', post, :confirm => 'Are you sure?', :method => :delete %></td>

app/views/posts/index.html.erb文件中给出,app/controllers/posts_controller.rb中的相应代码用于呈现app/views/posts/目录中的html页面。

如果我想渲染一个新的html页面,在index2.html.erb目录中说app/views/posts/,与index.html.erb相比没有'编辑'和'破坏'链接,那我该怎么写link_to以及posts_controller.rb中的相应代码?

2 个答案:

答案 0 :(得分:4)

如果您想要一个名为index2的操作,例如http://localhost:3000/posts/index2这样的示例网址,那么您需要:

  1. posts_controller.rb

    中为其创建操作(方法)
    class PostsController < ApplicationController
      ...
      def index2
      end
      ...
    end
    
  2. 在名为app/views

  3. index2.html.erb目录中为其创建一个视图文件
  4. 添加到config/routes.rb的路线,例如:

    resources :posts do
      member do
        get 'index2'
      end
    end
    
  5. 要链接到新创建的index2页面,请在其他html.erb文件中添加链接,如下所示:

    link_to "index 2",index2_post_path
    

    我强烈推荐这本书Agile Web Development with Rails (Pragmatic Programmers)

答案 1 :(得分:0)

通过在post_controller.rb

中编写link_to和相应的代码,不确定是什么意思

link_to机制可以像这样简化:

link_to('whatever you want to display in the link',{:controller => 'corresponding controller name',:action => 'corresponding action name'})

就渲染不同的模板而言,只需转到控制器并写下:

  

渲染( 'controllername /视图')

希望这会有所帮助