Ruby on rails 在rails中,如何仅将show操作执行到不同的路径?

Ruby on rails 在rails中,如何仅将show操作执行到不同的路径?,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,在我的应用程序中,我需要添加、编辑、删除和更新路径位于admin dash路径内。我需要将显示路径设置为从路径url开始,如/products/ID。这是我的路径文件: get '/products/:id', to: 'products#show' scope '/dash' do resources :products, except: :show end 现在的问题是,在我看来,当我调用link\u to product时,它指向admin短划线路径中的显示路径,

在我的应用程序中,我需要添加、编辑、删除和更新路径位于admin dash路径内。我需要将显示路径设置为从路径url开始,如/products/ID。这是我的路径文件:

  get '/products/:id', to: 'products#show'

  scope '/dash' do
     resources :products, except: :show
  end

现在的问题是,在我看来,当我调用
link\u to product
时,它指向admin短划线路径中的显示路径,如
dash/products/ID
。如何解决此问题?

您可以通过运行
rake routes
来使用
get'/products/:id'的帮助器url:'products#show'
,或者您可以这样做

= link_to "Show", "/products/#{product.id}"

link\u to product
在路由文件中查找
resources:products
。这就是它在范围上与之匹配的原因。解决这个问题的方法很少

您还需要将资源添加到范围之外的

  resources :products
  scope '/dash' do
     resources :products, except: :show
  end
或者您可以命名路径并在链接中使用它

  get '/products/:id', to: 'products#show', as: 'product'
  scope '/dash' do
     resources :products, except: :show
  end
链接到“显示”,产品路径(产品)


或者您可以在@RSB的回答中指定路径

您可以发布
rake routes
的输出吗?不确定,但您可以尝试将第一行替换为
资源:产品,仅:[:显示]
我无法重现该问题。一切都应该与您的代码一起工作。请提供
rake路由