I have a controller designed to perform simple CRUD operations. The model of my data has an attribute called start_date
. What should I do in order to make my API return a JSON response with only the entries with a start_date
value between two dates that I can specify in the body of the request?
Asked
Active
Viewed 27 times
1

Jagdeep Singh
- 4,880
- 2
- 17
- 22

Horatio Velveteen
- 35
- 5
-
1Possible duplicate of [Rails ActiveRecord date between](https://stackoverflow.com/questions/2381718/rails-activerecord-date-between) – Vishal Aug 22 '18 at 12:54
-
could you post your controller code with the action that is hit by the request? – John Baker Aug 22 '18 at 13:01
1 Answers
1
This is more like a generic question about filtering that could be applied to any API request.
If you make a GET
request for an endpoint like example.com/model
you would have to pass some parameters, in that case, 2 dates in the URL. So it would be something like this:
example.com/model?start_date=12.12.2017&end_date=15.12.2017
This example is super simple of course. You can pass those dates in different ways like a timestamp or ISO format. that is up to you.
On the backend side, you have to fetch those parameters from the request and perform a query on your model. something like this:
def index
start_date = params[:start_date]
end_date = params[:end_date]
# Make sure to parse the params and transform in a date object
result = Model.where('start_date < ? AND start_date > ?', end_date, start_date)
respond_to do |format|
format.json { render json: result }
end
end

Bruno Paulino
- 5,611
- 1
- 41
- 40