Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 路由关注点为资源定义不同的参数_Ruby On Rails_Ruby On Rails 4_Routes - Fatal编程技术网

Ruby on rails 路由关注点为资源定义不同的参数

Ruby on rails 路由关注点为资源定义不同的参数,ruby-on-rails,ruby-on-rails-4,routes,Ruby On Rails,Ruby On Rails 4,Routes,最近,我从这次讨论中了解到了路线中的rails问题 . 现在,在我的应用程序中,我有如下路线: namespace :admin do resources :photos resources :businesses resources :projects resources :quotes end resources :photos, param: 'slug' resources :businesses, param: 'slug' do resources :projec

最近,我从这次讨论中了解到了路线中的rails问题 . 现在,在我的应用程序中,我有如下路线:

namespace :admin do
  resources :photos
  resources :businesses
  resources :projects
  resources :quotes
end
resources :photos, param: 'slug'
resources :businesses, param: 'slug' do
  resources :projects, param: 'slug' #As I need both the url one inside business and one outside
end
resources :projects, param: 'slug'
resources :quotes, param: 'slug'
concern :shared_resources do
  resources :photos
  resources :businesses
  resources :projects
  resources :quotes
end
namespace :admin do
  concerns :shared_resources
end
concerns :shared_resources
concerns :shared_resources, param: 'slug'
还有更多的资源在重复,因为我需要它们。我知道如何实施这些措施。出于担忧,我可以这样做:

namespace :admin do
  resources :photos
  resources :businesses
  resources :projects
  resources :quotes
end
resources :photos, param: 'slug'
resources :businesses, param: 'slug' do
  resources :projects, param: 'slug' #As I need both the url one inside business and one outside
end
resources :projects, param: 'slug'
resources :quotes, param: 'slug'
concern :shared_resources do
  resources :photos
  resources :businesses
  resources :projects
  resources :quotes
end
namespace :admin do
  concerns :shared_resources
end
concerns :shared_resources
concerns :shared_resources, param: 'slug'
但是,如何在关注点中每次都给出不同的
参数?我试着这样做:

namespace :admin do
  resources :photos
  resources :businesses
  resources :projects
  resources :quotes
end
resources :photos, param: 'slug'
resources :businesses, param: 'slug' do
  resources :projects, param: 'slug' #As I need both the url one inside business and one outside
end
resources :projects, param: 'slug'
resources :quotes, param: 'slug'
concern :shared_resources do
  resources :photos
  resources :businesses
  resources :projects
  resources :quotes
end
namespace :admin do
  concerns :shared_resources
end
concerns :shared_resources
concerns :shared_resources, param: 'slug'
但这并没有改变路线。如果我加上:

resources :photos, param: 'slug'

然后它将添加到两个路由slug而不是id。但是在管理端我需要id,在前端我需要slug。那么,有没有什么方法可以在关注点中传递此信息,从而使代码干涸。

是的,我记得看到过一些关于此的内容。它不在Rails指南中,但这让我有点吃惊。您可以使用block:(引自上述答案)

在Rails 4中,您可以将选项传递给关注点。因此,如果您这样做:

然后当你搜索路线时,你会看到你得到一条像


感谢您的回复,但不幸的是,这没有工作,我没有发现任何变化。你试过这个吗?这意味着如果这对你有效。嗯,我不确定这一点,但在我链接的问题中,他们使用的参数看起来像
${concern\u name}\u something
。如果这个语法行得通,你能试试吗?老实说,我自己没有试过,但考虑到答案的正确性,我认为它会起作用。。。