ActiveModel :: Serializer中的子域

时间:2015-08-13 12:43:48

标签: ruby-on-rails ruby-on-rails-4

我用来生成JSON ActiveModel :: Serializer(gem' active_model_serializers')。 我有一个子域名。 有帮手。

module UrlHelper
   def with_subdomain(subdomain)
     subdomain = (subdomain || "")
     subdomain += "." unless subdomain.empty?
     [subdomain, request.domain, request.port_string].join
   end

   def url_for(options = nil)
     if options.kind_of?(Hash) && options.has_key?(:subdomain)
       options[:host] = with_subdomain(options.delete(:subdomain))
     end
     super
   end
end

如何使用子域名返回整个网址?

class TestSerializer < ActiveModel::Serializer
   attributes :id, :url

   def url
     object.url # get "testurl"
     # root_path(subdomain: object.url) # does not work
   end
end

所以它返回&#34; testurl&#34; - http://example.com/testurl

有必要返回http://testurl.example.com/

1 个答案:

答案 0 :(得分:0)

正如评论中所述,root_path必须更改为root_url_path帮助程序不会产生主机名,因此使用它们的输出生成的链接将导致当前域/子域。

相关问题