我有两个模型,艺术家和歌曲。每位艺术家has_many歌曲。我想为歌曲编写一个路径,在网址中包含歌曲和艺术家。
我的路线:get 'songs/:artist/:id' => 'songs#song', as: 'song'
例如,"约翰列侬"的"想象"的网址将是/songs/John%20Lennon/Imagine
。
该网址工作正常。我无法弄清楚的是如何为它编写路径。这些不起作用:
song_path(song: "Imagine", artist: "John Lennon")
song_path("John Lennon", "Imagine")
有人知道正确的语法吗?
你使用的是 Rails 5 吗?resource_path
在 Rails 5 中已弃用。您仍然可以使用link_to "song title", song_path(artist: "John Lennon", id: "Imagine")
另外,请注意,您在选项 1 中传递了键"song",并使用"id"定义路由。