0

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

谢谢你的指导。

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

我卡在下图的位置

4

4 回答 4

1

config/routes.rb根据http://guides.rubyonrails.org/routing.html ,当您遵循在您的 .rubyonrails.org/routing.html 中使用资源丰富的路由的约定时,您将受益于提供好的路径和 url 助手。

要查看可用的路径,只需运行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_pathoredit_ticket_url助手(后者将包含域名,并且对电子邮件之类的东西很有用)。

rake routes将输出与您的输出进行比较config/routes.rb有助于确保您对 Rails 约定和资源丰富的路线有很好的理解。

于 2012-07-28T11:02:24.910 回答
0
<%= link_to 'edit', edit_ticket_path(ticket) %>
于 2012-07-28T10:02:09.657 回答
0
<%= link_to edit_ticket_path(ticket) %>

一个提示您如何自己发现这一点:如果您使用脚手架,show.html.erb 页面上有一个编辑链接 - 您可以将其用作交换它所指的票证实例的示例。

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

于 2012-07-28T10:02:32.813 回答
0

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

这里需要在第二个参数中提供工单编辑链接的路径。

可以这样做:

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

然而,当你这样做时<%= link_to "show", ticket %>,Rails 会自动推断它是你想要的显示页面。

于 2012-07-28T10:03:20.910 回答