我想通过添加来编辑DB中的实体URL。如何在序列化程序中使用root_url
或root_path
?
这样的事情:
class TrackSerializer < ActiveModel::Serializer
attributes :id, :title, :mp3, :ogg
has_one :promo_album
def mp3
root_url + object.mp3
end
def ogg
root_url + object.ogg
end
end
但这不起作用。
答案 0 :(得分:4)
问题是默认情况下不包含Rails.application.routes.url_helpers。如果你替换
root_url
带
Rails.application.routes.url_helpers.root_url
你应该得到你正在寻找的结果。
答案 1 :(得分:0)
我忘了在java.util.WeakHashMap<K, V>
中定义root
param。 routes.rb
帮助我在序列化程序中获得include Rails.application.routes.url_helpers
。
答案 2 :(得分:0)
Rails 4:我在应用程序控制器中设置了配置变量。
class ApplicationController < ActionController::Base
before_action :set_root
protected
def set_root
Rails.application.config.root_url = root_url
end
我可以在我的模型中访问:
Rails.application.config.root_url
注意:它要求您在routes.rb。
中配置root