2017-10-16 91 views
0

用户点击example.com/pizza这样的标签,并在帖子控制器中看到比萨饼标签中的所有帖子。我希望人们也可以用比萨饼的标签看到所有的“备忘录”,但是在不同的控制器中。Rails相同的传入路由但不同的控制器操作?

rails路径抛出一个错误,说它已经在使用。什么是最好的方式去做这件事?

的routes.rb

# TAGS 
    get 'tags/:tag', to: 'posts#index', as: :tag 
    get 'tags/:tag', to: 'alternateposts#index', as: :tag 
+1

的'tag'别名已在使用,如果你声明了两次,URI'tags /:tag'将被覆盖。您的模型和关系如何定义?您的控制器?改善添加更多细节的问题。 –

回答

0

你不能声明与同一个URL多个路由。 就你而言,seconde网址会超载你的第一个。

您必须声明单个控制器的单一路由,并以相同的方式返回postsalternateposts

0

是@Antoine Dewaele是对的。您不要使用相同的URL声明多个路由。 路线文件是这样的

get 'tags/:tag' => 'posts#index', :as => :tag 

路线文件应该是这样的

get 'tags/:tag' => 'posts#index', :as => :tag 
get 'all_pizza' => 'all_pizza#index', :as => :all_pizza 

欲了解更多信息,你可以点击这里查看Rails Routing from the Outside In

+0

比萨饼只是标签的一个例子,而不是资源。所以不要制定一条路线来获得所有的披萨。 –

相关问题