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