我正在尝试在“票证索引”上创建一个链接以链接到“编辑”页面。(请看下图)现在我可以输入“0.0.0.0:3000/tickets/1/edit”进入编辑页面。但是,我不确定如何链接到此页面。你能给我一些指示吗?
谢谢你的指导。
注意:我正在学习 RoR 并基于 raistutorial.org 创建此页面
我正在尝试在“票证索引”上创建一个链接以链接到“编辑”页面。(请看下图)现在我可以输入“0.0.0.0:3000/tickets/1/edit”进入编辑页面。但是,我不确定如何链接到此页面。你能给我一些指示吗?
谢谢你的指导。
注意:我正在学习 RoR 并基于 raistutorial.org 创建此页面
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_path
oredit_ticket_url
助手(后者将包含域名,并且对电子邮件之类的东西很有用)。
rake routes
将输出与您的输出进行比较config/routes.rb
有助于确保您对 Rails 约定和资源丰富的路线有很好的理解。
<%= link_to 'edit', edit_ticket_path(ticket) %>
<%= link_to edit_ticket_path(ticket) %>
一个提示您如何自己发现这一点:如果您使用脚手架,show.html.erb 页面上有一个编辑链接 - 您可以将其用作交换它所指的票证实例的示例。
注意:link_to 的 :method 选项指的是 http 方法,可以是 GET、PUT、POST、DELETE,但不能是控制器动作!
该:method
属性指定 HTTP 属性,即 POST、GET、PUT、DELETE、UPDATE、HEAD 等等。
这里需要在第二个参数中提供工单编辑链接的路径。
可以这样做:
<%= link_to "edit", edit_ticket_path(ticket) %>
然而,当你这样做时<%= link_to "show", ticket %>
,Rails 会自动推断它是你想要的显示页面。