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

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

link_to "New Ticket", new_project_ticket_path(@project) 

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

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

 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路由指南中有关列出现有路由的部分 。

我通常会参考Rails路由指南

这是API文档 。 它包含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 – 提交表单时,此参数的值将用作提交按钮的禁用版本的值。 此function由不显眼的JavaScript驱动程序提供。