我按照给出的指示实施了官方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
中的相应代码?
答案 0 :(得分:4)
如果您想要一个名为index2
的操作,例如http://localhost:3000/posts/index2
这样的示例网址,那么您需要:
在posts_controller.rb
:
class PostsController < ApplicationController
...
def index2
end
...
end
在名为app/views
index2.html.erb
目录中为其创建一个视图文件
添加到config/routes.rb
的路线,例如:
resources :posts do
member do
get 'index2'
end
end
要链接到新创建的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 /视图')
希望这会有所帮助