fuz*_*nny 4 ruby routes ruby-on-rails url-helper
我在视图中有以下代码(RoR 4):
tbody
- @order_submissions.each do |order_submission|
tr
td = order_submission.id
td.table-actions
span = link_to "Show", order_submissions_path(order_submission.id)
Run Code Online (Sandbox Code Playgroud)
td = order_submission.id
Run Code Online (Sandbox Code Playgroud)
成功显示为ID号(533ab7337764690d6d000000)
但...
order_submissions_path(order_submission.id)
Run Code Online (Sandbox Code Playgroud)
创建一个以下列形式出现的URL:
order_submissions.533ab7337764690d6d000000
Run Code Online (Sandbox Code Playgroud)
我想要它
order_submissions/533ab7337764690d6d000000
Run Code Online (Sandbox Code Playgroud)
那个时期从哪里来?
这是我的路线:
get 'order_submissions/:id' => 'order_submissions#show'
Run Code Online (Sandbox Code Playgroud)
当我运行rake路线时,我得到:
GET /order_submissions/:id(.:format) order_submissions#show
Run Code Online (Sandbox Code Playgroud)
(.:格式)可能正在弄乱它,但我不知道为什么.我只是想让它在那里放一个斜线.
如果我将我的代码更改为此修复它:
span = link_to "Show", order_submissions_path + '/' + order_submission.id
Run Code Online (Sandbox Code Playgroud)
但这是一个非常非常愚蠢的解决方法.
编辑:这是我的路线:
get 'order_submissions' => 'order_submissions#index'
get 'order_submissions/new' => 'order_submissions#new'
post 'order_submissions' => 'order_submissions#create'
get 'order_submissions/:id' => 'order_submissions#show'
get 'order_submissions/:id/edit' => 'order_submissions#edit'
patch 'order_submissions/:id' => 'order_submissions#update'
get 'order_submissions/:id/delete' => 'order_submissions#delete'
delete 'order_submissions/:id' => 'order_submissions#destroy'
Run Code Online (Sandbox Code Playgroud)
所述order_submissions_path
(多个)指向/order_submissions
.它需要两个参数,第一个是请求的格式(例如html).您的ID将被传入此参数,从而导致您看到的结果URL.
你真的想要一个奇异的路径助手,order_submission_path
它接受一个ID作为第一个参数.
归档时间: |
|
查看次数: |
1719 次 |
最近记录: |