I'm fairly new to Rails so I don't have as much knowledge on webapp design as I wish I did.
So the main use case for this Rails app is that a user comes to the root page, uploads an image to search for, fills out a few more search parameters, then clicks Search. The users request gets added to the DB and there will be another application running asynchronously that will queue up new rows added to the DB to perform long running searches (the search is actually facial recognition against another DB). The user gets sent to a Wait page where they can continually check the status of his or her search. Once their search is ready they can click on it and will be sent to a Results page where they can review the results of the facial recognition search.
So for my initial guess of the data I broke this into three Models: SearchDetail, SearchRequest, and SearchResult.
SearchDetail holds the path to the image field, and fields for the rest of the parameters.
SearchResult holds a vector of information from the search
SearchRequest has a one-to-one relationship with both SearchDetail and SearchRequest, status field, and session ID field (so it can be connected to the proper user)
*I also attached this for better visualization
It seems like I would only need a create for SearchDetail, show for SearchRequest, and show for SearchResult, rather than whole a scaffold for each one. So my question is, is this a decent design?