mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-22 22:06:50 +00:00
Refactor out url builders from link builder
This commit is contained in:
parent
da3802ee3c
commit
838388dc03
@ -446,23 +446,31 @@ module AMS
|
||||
end
|
||||
|
||||
def related_link_to_one(id, type)
|
||||
{ related: link_builder.url_for(controller: type, action: :show, id: id) } # related resource link object
|
||||
{ related: show_url_for(id, type) } # related resource link object
|
||||
end
|
||||
|
||||
# related resource link object
|
||||
def related_link_to_many(type)
|
||||
filter = { foreign_key => object.id }
|
||||
query_params = { filter: filter }
|
||||
{ related: link_builder.url_for(controller: type, action: :index, params: query_params) }
|
||||
{ related: index_url_for(type, query_params) }
|
||||
end
|
||||
|
||||
def resource_links_object
|
||||
return {} unless link_builder?
|
||||
{
|
||||
self: link_builder.url_for(controller: type, action: :show, id: id)
|
||||
self: show_url_for(id, type)
|
||||
}
|
||||
end
|
||||
|
||||
def show_url_for(id, type)
|
||||
link_builder.url_for(controller: type, action: :show, id: id)
|
||||
end
|
||||
|
||||
def index_url_for(type, query_params)
|
||||
link_builder.url_for(controller: type, action: :index, params: query_params)
|
||||
end
|
||||
|
||||
def foreign_key
|
||||
"#{object.class.table_name.singularize}_id"
|
||||
end
|
||||
|
||||
Loading…
Reference in New Issue
Block a user