【发布时间】:2012-07-28 09:55:18
【问题描述】:
我正在尝试在“票证索引”上创建一个链接以链接到“编辑”页面。 (请看下图) 现在我可以输入“0.0.0.0:3000/tickets/1/edit”进入编辑页面。 但是,我不确定如何链接到此页面。 能指点一下吗?
感谢您的指导。
注意: 我正在学习 RoR 并根据 raistutorial.org 创建此页面
【问题讨论】:
标签: ruby-on-rails ruby routes view-helpers
我正在尝试在“票证索引”上创建一个链接以链接到“编辑”页面。 (请看下图) 现在我可以输入“0.0.0.0:3000/tickets/1/edit”进入编辑页面。 但是,我不确定如何链接到此页面。 能指点一下吗?
感谢您的指导。
注意: 我正在学习 RoR 并根据 raistutorial.org 创建此页面
【问题讨论】:
标签: ruby-on-rails ruby routes view-helpers
当您按照http://guides.rubyonrails.org/routing.html 的规定,在您的config/routes.rb 中遵循使用资源丰富的路由的惯例时,您将受益于拥有可用的路径和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 或edit_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 会自动推断这是您想要的显示页面。
【讨论】: