On Sat, Oct 25, 2014 at 8:07 PM, <
mike...@comcast.net> wrote:
> I have a table with several thousand records in it. They take a long time
> to load and are essentially useless presented altogether.. I'd like present
> the user a search form to select a limited subset of records for display in
> the index function. What options are available to solve this problem and
> where might I look for examples or demos?
How about, assuming you're searching for "widgets":
- Have the view expect the index controller to pass it @widgets (an
array of widget records) and @message, displaying the message and then
the records if any, and the current search in a search form (blank if
no criteria given). Let's defer for now the debates over more
advanced ideas, like encapsulating the criteria in an object, whether
that should be a PORO or not, and Sandi Metz's guideline of "only pass
one object".
- Have the index controller look at whatever criteria were presented.
- If no criteria, just set @widgets to [], and set @message to "Please
enter some search criteria."
- Else, do the search (putting results in @widgets), and then:
- If any results, set message to "The following widgets matched your
search:" (or whatever).
- Else set message to "Sorry, no widgets matched your search. Please
change your search and try again."
If they take a long time to load even with a reasonable search, you
can present a *count* of the results, and if that's over some number,
just present the count and tell the user to restrict the search some
more, like by setting @widgets empty again, and putting the count in
the message. (And/or look at *why* they take so long to load.)
-Dave
--
Dave Aronson, freelance software developer (details @
www.Codosaur.us);
see also
www.PullRequestRoulette.com,
Blog.Codosaur.us,
www.Dare2XL.com