如何编写包含两个键的路径?

时间:2017-08-13 22:18:18

标签: ruby-on-rails path routes rails-routing

我有两个模特,艺术家和歌曲。每位艺术家都有很多歌。我想为歌曲写一个路径,其中包括歌曲中的歌曲和艺术家。

我的路线:get 'songs/:artist/:id' => 'songs#song', as: 'song'

例如,“约翰列侬”的“想象”网址为/songs/John%20Lennon/Imagine

该网址正常。我无法弄清楚的是如何为它写一条路径。这些不起作用:

song_path(song: "Imagine", artist: "John Lennon")
song_path("John Lennon", "Imagine")

任何人都知道正确的语法吗?

1 个答案:

答案 0 :(得分:1)

您使用的是Rails 5吗?在Rails 5中不推荐使用resource_path。您仍然可以使用link_to "song title", song_path(artist: "John Lennon", id: "Imagine")

另外,请注意您在选项1中传递了“歌曲”键,并使用“id”定义了路线。