[英]Share path for two different controllers in Rails routes?
我有兩個不同的控制器,一個叫做 Movies,另一個叫做 Movie Articles。 我真的希望它們都位於同一路徑/movies
下,以便我可以在同一路徑下同時擁有電影標題和文章。 我只會對其中一個使用#index,但希望在routes.rb
中相應地使用它
resources :movie_articles, :path => "movies", :only => [:index, :show]
resources :movies, :path => "movies", :only => [:show]
對於網址,例如
/movies/top-10-best-mafia-movies (article)
/movies/godfather-2 (movie)
基本上這樣當 Rails 嘗試查找“godfather-2”並且在movie_articles
中找不到它時,它會繼續在movies
下查找它。 我很確定這適用於 root_path 但它似乎不適用於像這樣的子路徑。
可能嗎? 在這種情況下應該怎么做?
不可能因為“在一條路徑下共享兩個不同的 controller 動作”,因為 rails 需要決定查看頁面 url - 現在應該調用哪個 controller 動作? 但是您可以通過一個操作來完成(在任何控制器中)
def show
@record = MovieArticle.find_by(id: params[:id]) # use find_by to don't get 404
@record ||= Movie.find(params[:id])
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.