-
Notifications
You must be signed in to change notification settings - Fork 325
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for first, limit, group and order #520
Comments
Your best bet is to define scopes or class methods on the model, since Her can't predict what conventions an API follows for each of these options. Some examples class User
include Her::Model
# @example
#
# User.page(2) # Fetched via GET "/users?page=2
scope :page, ->(value) { where(page: value) }
# @example
#
# User.limit(100) # Fetched via GET "/users?limit=100
scope :limit, ->(value) { where(limit: value) }
# @example
#
# User.order(:name) # Fetched via GET "/users?sort=name_asc
def self.order(params = {})
params = Hash[params, :asc] if params.is_a? ::Symbol
where(sort: params.flatten.join('_'))
end
end Another idea would be to move these into a base class or mixin so they could be reused. |
Problem with that is that I'm wrapping the where statement as per an earlier post. It's almost like I need the ability to do something like
where the Best, Josh |
What's the purpose behind the |
Ok, see now where this particular problem is discussed in #519. Let's move the conversation over there and see if we can find a solution since we covered support of limit, page, etc. 😺 |
Ok. So. I have overridden the where method for Her like such:
so that where is automatically wrapped in a "where" attribute. Then on the API I have this...
so when I user Her I do something like:
And all of the above work fine and let me run any query. As you can see, because of this I can't just put things like limit, order, etc into the where statement, which doesn't make sense logically anyway. If, however, I had a catch-all method, like
and then on the API:
make sense? |
@zacharywelch that one was me also :) That addresses more mutating existing methods (I didnt use any of those btw) instead of adding new ones. |
Is there any way to add support for
We basically just need a way to either include or pass those as params, especially LIMIT.
With limit we can easily add our own Model.first method.
If someone points me in the right direction to add these myself, I can try to incorporate them.
The text was updated successfully, but these errors were encountered: