关于url helper在rails中的文档在哪里?

时间:2013-07-03 21:21:15

标签: ruby-on-rails

我如何知道url helper在Rails中使用的参数?例如,我如何知道url helper只接受下面的一个参数?我知道这些方法是元编程的,但他们的文档在哪里?

link_to "New Ticket", new_project_ticket_path(@project)

3 个答案:

答案 0 :(得分:54)

您可以通过查看路线定义来确定路线助手所需的参数数量。

例如,您可能有此路径文件:

resources :users

如果您在命令行中运行rake routes,您会看到如下内容:

    users GET    /users(.:format)          users#index
          POST   /users(.:format)          users#create
 new_user GET    /users/new(.:format)      users#new
edit_user GET    /users/:id/edit(.:format) users#edit
     user GET    /users/:id(.:format)      users#show
          PUT    /users/:id(.:format)      users#update
          DELETE /users/:id(.:format)      users#destroy

第一列为您提供路线的名称。您可以附加_path_url以获取路线助手的名称。

第三列显示模式。这是你可以弄清楚参数是什么的地方。参数是以冒号为前缀的部分,括号中显示可选参数。例如,edit_user路由的模式/users/:id/edit(.:format)包含一个必需参数(id)和一个可选参数(format),这告诉我至少需要通过edit_user_pathedit_user_url帮助者的一个参数:

edit_user_path(1) # => "/users/1/edit"
edit_user_path(2, :html) # => "/users/2/edit.html"

您还可以将模式中的参数名称用作哈希中的键:

edit_user_path(id: 3, format: 'js') # => "/users/3/edit.js"

最后,您可以添加额外的参数,这些参数将成为查询字符串的一部分:

edit_user_path(id: 4, format: 'json', foo: 1) # => "/users/4/edit.json?foo=1"
edit_user_path(5, bar: 2) # => "/users/5/edit?bar=2"

有关rake routes

的详情,请参阅Rails Routing Guide's section on Listing Existing Routes

答案 1 :(得分:5)

我通常会提到Rails Routing Guide

答案 2 :(得分:1)

这是API doc。它包含link_to,button_to,link_to_unless,link_to_unless_current,current_page?和mail_to。

link_to(name = nil, options = nil, html_options = nil, &block)

link_to(body, url, html_options = {})
# url is a String; you can use URL helpers like posts_path

选项

:data - 此选项可用于添加自定义数据属性。

方法:HTTP谓词的符号 - 此修饰符将动态创建HTML表单,并立即使用指定的HTTP谓词提交表单以进行处理。用于让链接在危险操作中执行POST操作非常有用,例如删除记录(搜索机器人可以在抓取您的站点时跟踪)。支持的动词有:post,:delete,:patch和:put。请注意,如果用户禁用了JavaScript,请求将回退到使用GET。如果使用href:'#'并且用户禁用了JavaScript,则单击该链接将无效。如果您依赖于POST行为,则应该使用请求对象的post?,delete?,:patch或put?方法在控制器的操作中检查它。

remote:true - 这将允许不显眼的JavaScript驱动程序向相关URL发出Ajax请求,而不是跟随链接。每个驱动程序都提供了一些机制,用于监听完成Ajax请求并在完成后执行JavaScript操作

数据属性

确认:'问题?' - 这将允许不显眼的JavaScript驱动程序提示指定的问题。如果用户接受,则链接将正常处理,否则不会采取任何措施。

:disable_with - 提交表单时,此参数的值将用作提交按钮的禁用版本的值。此功能由不显眼的JavaScript驱动程序提供。