Right now I have a nested route that looks something like this:
resources "/timesheet", TimesheetController do
resources "/times", TimesController
end
And things are working as expected - if I visit GET timesheet/${timesheet.id}/times
I get a list of all the times related to that timesheet ID. However, let’s say that I wanted to go a step further and filter it by timesheet ID and also by month. So I want the end URL to look something like this: GET timesheet/${timesheet.id}/sept18/times
how can I nest it further? I have an assoc with times and timesheet, but what is the best approach to adding this functionality? When I tried to just add a query param, it kept throwing errors about pattern mismatch so it was pretty tough to figure out what to do next.
Yeah, so basically I would want it to be sent as GET ${timesheet.id}/${selectedMonthYr}/item, but even just doing a query parameter like you have there would be great. The error I am getting right now says that the path doesn’t exist and theres a pattern matching error, but I’m not sure how that should look.
Can you post the error you get when you do GET timesheet/${timesheet.id}/times?date=sept18 or something similar? Can you also post the controller action (or just its function head) for this route?
I’m at work right now so I won’t be able to post the snippets until tonight unfortunately, but I think the structure you wrote might be a little different than what I was aiming for. So how right now it goes timesheets/:id/item to find an item belonging to a timesheet of a certain id, I want to add one more parameter to timesheets so that it looks like timesheets/:id/:date/item and finds items belonging to a timesheet of a certain id, of a certain date. Does that make sense? So basically it will be a second router param to timesheet, not to item