Model *_url在rails 4 ActiveRecord序列化程序中不起作用

Model *_url在rails 4 ActiveRecord序列化程序中不起作用,model,ruby-on-rails-4.2,active-model-serializers,rails-api,Model,Ruby On Rails 4.2,Active Model Serializers,Rails Api,我正在获取未定义的方法: undefined method `url' for TrackSerializer:Class 但我的目标是在json响应中包含相关对象url的url 这是我的模型: class TrackSerializer < ActiveModel::Serializer attributes :id, :title has_many :playlists has_one :album url :track end 我将继续创建一个仅返回对象ur

我正在获取未定义的方法:

undefined method `url' for TrackSerializer:Class
但我的目标是在json响应中包含相关对象url的url

这是我的模型:

class TrackSerializer < ActiveModel::Serializer

  attributes :id, :title
  has_many :playlists
  has_one :album

  url :track

end

我将继续创建一个仅返回对象url的播放列表序列化程序:

class PlaylistSerializer < ActiveModel::Serializer
  attributes :url

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

从您的TrackSerializer中删除
url:track

如果我正确读取了您的关联,则每首曲目都会有许多播放列表。您想返回每个曲目的播放列表url数组吗?是的,但我想要的是url而不是播放列表,但我的理解是正确的,您需要的是播放列表url数组,而不是像您的示例所示的单个url?是的,你是100%正确的,我已经做了上面的操作,但是我得到了以下错误:未定义的方法`playlist\u urlHmm。应该包括URL帮助程序。看起来可能有bug:“您可能必须硬编码url(请参阅我已注释掉的部分),但url应该是主机敏感的。个人而言,我会考虑使用一个实现任何规范化资源定位符的GEM。
class PlaylistSerializer < ActiveModel::Serializer
  attributes :url

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