我如何知道url helper在Rails中使用的参数?例如,我如何知道url helper只接受下面的一个参数?我知道这些方法是元编程的,但他们的文档在哪里?
link_to "New Ticket", new_project_ticket_path(@project)
geo*_*ock 55
您可以通过查看路径定义来确定路径助手所需的参数数量.
例如,您可能有此路由文件:
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_pathor edit_user_urlhelper:
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"
有关详细信息,请参阅" Rails路由指南"中有关列出现有路由的部分rake routes.
| 归档时间: | 
 | 
| 查看次数: | 14403 次 | 
| 最近记录: |