我如何使它工作? 這是一個例子網址,我需要:嵌套路線不起作用
/姓名/職位/ 2
我的routes.rb
get "/:name", to: "categories#show" do
resources :posts, only: [:show]
end
我如何使它工作? 這是一個例子網址,我需要:嵌套路線不起作用
/姓名/職位/ 2
我的routes.rb
get "/:name", to: "categories#show" do
resources :posts, only: [:show]
end
應用程序/配置/ routes.rb中
scope path: '/:name' do
resources :posts, only: [:show]
end
resources :posts, except: [:show]
這會將:name
和:id
參數傳遞到您的posts#show
函數中。
應用程序/控制器/ posts_controller.rb
def show
user = User.where(name: params[:name]).first
@post = Post.where(['id = ? AND user_id = ?', params[:id], user.id])
render @post
end
注:這可以是多個導軌4友好通過使用強參數。
這將捕捉到任何像網址,並將其路由/:name
到類別控制器。 添加:path => ""
意味着它會從URL中刪除資源標識符。 因此,您現在得到的不是/ categories/foobar
/foobar
然後,您只需在父路線中嵌套您的發佈路線。
resources :categories, :path => "" do
resources :posts, :only => :show
end
注意,這種包羅萬象的路線可能非常容易出錯,因爲它抓住了一切,包括廢話,你不要指望:)