RoR:链接到页面

时间:2012-07-28 09:55:19

标签: ruby-on-rails ruby routes view-helpers

我正在尝试在“门票索引”上创建链接以链接到“编辑”页面。 (请参见下图) 现在我可以输入“0.0.0.0:3000/tickets/1/edit”去编辑页面。 但是,我不知道如何链接到此页面。 你能给我一些指示吗?

感谢您的指导。

注意: 我正在学习RoR&基于raistutorial.org创建此页面

I am stuck at the location of the following picture

4 个答案:

答案 0 :(得分:1)

当您遵循config/routes.rb中使用资源丰富路线的惯例时,根据http://guides.rubyonrails.org/routing.html,您可以获得良好的路径和网址助手。

要查看可用的路径,只需运行rake routes,您就会看到如下输出:

% rake routes

    tickets GET    /tickets(.:format)          tickets#index
            POST   /tickets(.:format)          tickets#create
 new_ticket GET    /tickets/new(.:format)      tickets#new
edit_ticket GET    /tickets/:id/edit(.:format) tickets#edit
     ticket GET    /tickets/:id(.:format)      tickets#show
            PUT    /tickets/:id(.:format)      tickets#update
            DELETE /tickets/:id(.:format)      tickets#destroy

从这里,我们可以看到有一条命名路由edit_ticket,所以我们可以使用edit_ticket_pathedit_ticket_url助手(后者将包含域名,对于像电子邮件这样的东西。)

rake routes的输出与config/routes.rb中的输出进行比较非常有用,以确保您对铁路惯例和资源丰富的路线有充分的了解。

答案 1 :(得分:0)

<%= link_to 'edit', edit_ticket_path(ticket) %>

答案 2 :(得分:0)

<%= link_to edit_ticket_path(ticket) %>

你可以自己发现这个问题的一个提示:如果你使用脚手架,show.html.erb页面上有一个编辑链接 - 你可以用它作为一个例子来交换它所指的票证实例

注意:link_to的:method选项引用http方法,可以是GET,PUT,POST,DELETE,但不是控制器动作!

答案 3 :(得分:0)

:method属性指定HTTP属性,即POST,GET,PUT,DELETE,UPDATE,HEAD等等。

您需要在第二个参数中提供票证编辑链接的路径。

可以这样做:

<%= link_to "edit", edit_ticket_path(ticket) %>

但是当你只做<%= link_to "show", ticket %>时,Rails会自动推断出它是你想要的节目页面。