Skip to content

has_one SQL not using LIMIT when using include #750

Open
@kevintraver

Description

@kevintraver

I have the following model:

class Foo < ActiveRecord::Base
  has_many :messages
  has_one :last_message, -> { order(created_at: :desc) }, class_name: 'Message'
end

and following resource:

class FooResource < JSONAPI::Resource
  has_one :last_message, class_name: 'Message'
end

When I request /foo/1/last-message it generates the following SQL:

SELECT  `messages`.* FROM `messages` WHERE `messages`.`foo_id` = 1  ORDER BY `messages`.`created_at` DESC LIMIT 1

But when I request /foo/1?include=last-message, the SQL doesnt append LIMIT

SELECT `messages`.* FROM `messages` WHERE `messages`.`foo_id` IN (1)  ORDER BY `messages`.`created_at` DESC

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions