Ruby on rails 使用slug显示操作的自定义路由
我正在尝试为想要显示的模型创建一些URL。我有文章,属于问题的章节 我希望我的文章显示操作的URL如下所示:Ruby on rails 使用slug显示操作的自定义路由,ruby-on-rails,routes,slug,friendly-id,Ruby On Rails,Routes,Slug,Friendly Id,我正在尝试为想要显示的模型创建一些URL。我有文章,属于问题的章节 我希望我的文章显示操作的URL如下所示: /issue slug/section slug/article slugissues文章和章节的slug存储在数据库中 现在我有一个叫做“pressroom”的后端部分,我有下面的方法。这是完整的routes.rb文件 MaskmagazineCom::Application.routes.draw do devise_for :users, :path_names => {
/issue slug/section slug/article slug
issues文章和章节的slug存储在数据库中
现在我有一个叫做“pressroom”的后端部分,我有下面的方法。这是完整的routes.rb文件
MaskmagazineCom::Application.routes.draw do
devise_for :users, :path_names => { :sign_up => "register"}, :controllers => { :registrations => "registrations" }
# The priority is based upon order of creation: first created -> highest priority.
# See how all your routes lay out with "rake routes".
root 'magazine#index'
get 'users/' => 'users#index'
# Lobby Routes
# /log-in
devise_scope :user do
get '/sign-in' => 'devise/sessions#new'
end
# /subscribe
get 'subscribe' => 'subscribe#stepone'
get 'subscribe/sliding-scale' => 'subscribe#steptwo'
get 'subscribe/sliding-scale/subscriber' => 'subscribe#subscriber'
get 'subscribe/sliding-scale/supporter' => 'subscribe#supporter'
get 'subscribe/sliding-scale/sustainer' => 'subscribe#sustainer'
post 'subscribe/sliding-scale/:type' => 'subscribe#createSubscription'
# Pressroom Routes
get '/pressroom' => 'pressroom#index'
scope 'pressroom' do
resources :issues, :articles, :sections, :users, :authors
end
我如何才能拉出show动作并将其路由到我描述的url
编辑:
我已经在routes文件中提出了我希望它执行的操作,但我需要相应的控制器代码:
get'/:issue_slug/:section_slug/:article_slug'=>“article#show”
我建议查看slug
对于路线,您将希望您的路线为:
# Mag Routes
get '/mag' => 'mag#index' #or wherever you're headed
scope 'mag' do
resources :issues do
resources :sections do
resources :articles
end
end
end
end
我已经在为Slug使用friendly_id了,我不知道我需要在文章控制器的show action中添加什么来获得我想要的url。我刚才向您展示的资源块位于
config/routes.rb
中。你能帮我发布你的全部路线文件吗?如上所述,我在你的路线中添加了不太正确的内容,我希望文章#show显示在/mag/issue\u slug/section\u slug/article\u slug。其余的路线都很好,mag实际上是您现在的布局方式。但这就是你如何找到你想要的方式的途径。当您链接到一篇文章时,您可以将其链接到[@issue,@section,@article]
以访问您的文章#显示操作。示例-mag
在您的路线中的何处?