0

我得到未定義的方法:* _url不是在軌工作4 ActiveRecord的串行

undefined method `url' for TrackSerializer:Class 

,但我的目標是有相關對象網址的網址在我的JSON響應

這裏是我的模型:

​​

這裏就是我想在我的反應來實現:

{ 
    "tracks": [ 
     { 
      "id": 7, 
      "title": "True love", 
      "playlists_url": "http://localhost:3000/7/playlist", 
     } 
    ] 
} 
+0

如果我正確地閱讀你的關聯,每個軌道將有許多播放列表。您想要爲每個音軌返回播放列表網址的數組? –

+0

是的,但我想要的是網址,而不是播放列表 –

+0

但我理解你會想要一個播放列表網址的數組,而不僅僅是像你的例子一樣的單個網址? –

回答

2

我會繼續前進,創造一個PlaylistSerializer剛剛返回的URL對象:

class PlaylistSerializer < ActiveModel::Serializer 
    attributes :url 

    def url 
    Rails.application.routes.url_helpers.playlist_url(object) 
    end 
end 

從TrackSerializer刪除url :track

+0

我已經做了以上,但我gettig以下錯誤:undefined方法'playlist_url –

+0

嗯。應該包含URL助手。看起來可能有錯誤:「https://github.com/rails-api/active_model_serializers/issues/770」您可能必須對url進行硬編碼(請參閱我已註釋的部分) –

+0

URL應爲但主機敏感。就個人而言,我會考慮使用實現任何標準化資源定位器的gem。 –