gpt4 book ai didi

ruby-on-rails - 在 Rails 路由中共享两个不同 Controller 的路径?

转载 作者:行者123 更新时间:2023-12-04 11:00:26 25 4
gpt4 key购买 nike

我有两种不同的 Controller ,一种称为电影,另一种称为电影文章。我真的希望它们都位于同一条路径下 /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 操作?但是您可以在一个操作下完成(在任何 Controller 中)

def show
@record = MovieArticle.find_by(id: params[:id]) # use find_by to don't get 404
@record ||= Movie.find(params[:id])
end

关于ruby-on-rails - 在 Rails 路由中共享两个不同 Controller 的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58833848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com