I usually set an instance variable with the filter value and use that to set the appropriate current filter.
Yet another option is having multiple index methods with appropriate names. Nice in that it makes the url quite a bit clearer and not too much more to get it implemented. On Nov 23, 4:07 am, Pete <[email protected]> wrote: > Thank you very much, implementing the <filter-menu> did exactly what I > was looking for, > > it's a shame that the filter resets to the default option , once the > re-render has finished (is there a way to set this every time a new > option is selected)? > However this is a very minor issue, and this does exactly what I want, > > Thanks again! > > Pete > > On Nov 18, 5:20 pm, kevinpfromnm <[email protected]> wrote: > > > If you're willing to do a full render, just use the filter-menu tag > > for your select. Way simpler than anything else. Your controller > > code can remain the same and your view will just betable-plus (minus > > the part attribute) and the filter-menu. > > > On Nov 18, 3:23 am, Pete <[email protected]> wrote: > > > > Thanks again for your reply, > > > > Yes, that is exactly what I'm trying to so, refresh part of the page, > > > after selecting a specific option in the drop-down menu. And yep, I am > > > just looking at choosing between views of All and Latest. > > > > Sorry, my naming was perhaps a little ambiguous! > > > > I have added the <do> section wrapped around mytable, but theupdate/ > > > refresh does not seem to be happening still. > > > > I think what is happening, is when I select :update=> > > > 'finished_article_table', in an attempt toupdatethis specific part, > > > as I have also used :with => 'Form.Element.Serialize(this)', the > > >updateis just using the string of 'this' context, so am just shown a > > > page with 'Latest' text at the top. (or 'All' depending on the > > > selection) > > > > What I think I need to to, is: because this value is being passed back > > > to the controller to instantiate the @myOption instance variable, and > > > therefore select different options through my chained named_scope, I > > > think I would then need to re-render the page with these new options - > > > a complete re-render would be perfectly fine, as long as the selected > > > variable was still being passed to build the correcttable-plus, > > > > Is there a page re-render option I can call in the controller, which > > > will build the new page based on current options? > > > > Thanks again > > > > Pete > > > > On Nov 18, 12:22 am, kevinpfromnm <[email protected]> wrote: > > > > > ok, so I'm fully clear, this is an index view that you want to be able > > > > to switch between viewing latest and viewing all with an ajaxupdate > > > > rather than re-rendering the page? Some of the naming was throwing me > > > > off assuming that's the case. > > > > > Try something like this. > > > > > <do part='finished_article_table' part-locals="@page"> > > > > <table-plus with="&page" fields="page, created_at" > > > > > </table-plus> > > > > </do> > > > > > I think what's going on, is it's not using the updated context (which, > > > > this still might not get it there) because it's passed as an instance > > > > variable. I'm not sure by any means but maybe it will get you going > > > > again. > > > > > On Nov 17, 1:09 pm, Pete <[email protected]> wrote: > > > > > > ... sorry again (what am I doing.... long day!) > > > > > > :update=> 'finished_article_table' > > > > > > On Nov 17, 8:06 pm, Pete <[email protected]> wrote: > > > > > > > yep, sorry! it is a typo should be :update=> > > > > > > '''inished_article_table' > > > > > > > this was correct in my code, just a typo here........ > > > > > > > On Nov 17, 7:40 pm, kevinpfromnm <[email protected]> wrote: > > > > > > > > Is :update=> ''finished_article_table' a typo? mismatched quote > > > > > > > types. > > > > > > > > On Nov 17, 8:15 am, Pete <[email protected]> wrote: > > > > > > > > > Thanks Kevin, > > > > > > > > > The part mechanism certainly seems like a good logical step in > > > > > > > > updating specific sections of the page, I like it! :) > > > > > > > > > I had a look at a lambda in the named scope, but this seemed to > > > > > > > > restrict what I was trying to achieve with my particular models > > > > > > > > and > > > > > > > > fields. > > > > > > > > > What I have managed to build so far is: > > > > > > > > > my controller method ----- > > > > > > > > > def finishedArticle > > > > > > > > > �...@myoption = params[:stateSelect] > > > > > > > > > if @myOption == 'Latest' > > > > > > > > > �...@page = > > > > > > > > Page.finished_pages.latest_finished.apply_scopes( :search => > > > > > > > > [params[:search], :page, :created_at ], :order_by => > > > > > > > > parse_sort_param(:page, :created_at )).paginate(:per_page => > > > > > > > > 25, :page > > > > > > > > => params[:page]) > > > > > > > > > else > > > > > > > > > �...@page = Page.finished_pages.apply_scopes( > > > > > > > > :search => > > > > > > > > [params[:search], :page, :created_at], :order_by => > > > > > > > > parse_sort_param(:page, :created_at :)).paginate(:per_page => > > > > > > > > 25, :page => params[:page]) > > > > > > > > > end > > > > > > > > end > > > > > > > > > Then in my view for finished Articles, I have: > > > > > > > > > <%= select_tag "stateSelect", options_for_select(['All', > > > > > > > > 'Latest'], > > > > > > > > 'All'), { :onchange => remote_function( > > > > > > > > :update=> 'finishedArticles', > > > > > > > > :with => 'Form.Element.serialize(this)', > > > > > > > > :url => {:action => > > > > > > > > 'finishedArticles'}) } %> > > > > > > > > > <table-plus part='finished_article_table' with="&@page > > > > > > > > fields="page, > > > > > > > > created_at" > > > > > > > > > </table-plus> > > > > > > > > > I feel like I am almost there with what I am trying to achieve, > > > > > > > > the > > > > > > > > webpage loads initially with all of the finished articles > > > > > > > > showing in > > > > > > > > thetable, and when I use the select menu, to choose 'Latest, I > > > > > > > > can > > > > > > > > see from the console that the correct data is extracted from the > > > > > > > > database - and has picked up the chained named scope - (if > > > > > > > > @myOption = > > > > > > > > 'Latest' .... Page.finished_pages.latest_finished), however, I > > > > > > > > cannot > > > > > > > > get the contents of thetabletoupdate. If I change :update=> > > > > > > > > 'finishedArticles', to :update=> ''finished_article_table', I > > > > > > > > get a > > > > > > > > blank page with the text 'Latest' shown in the top corner? > > > > > > > > > I have thought about trying to use render :updatedo |page| > > > > > > > > page.replace_html, 'theTable' 'relevant code to replacetable'- > > > > > > > > but I > > > > > > > > am unsure how to call the html correctly here to render the > > > > > > > > changed > > > > > > > >tableon the webpage? > > > > > > > > > Any help here would be greatly appreciated! > > > > > > > > > Thanks again > > > > > > > > > Pete > > > > > > > > > On Nov 12, 11:15 pm, kevinpfromnm <[email protected]> > > > > > > > > wrote: > > > > > > > > > > I'm thinking, move the option list to a named_scope that > > > > > > > > > takes an > > > > > > > > > argument, then something like: > > > > > > > > > > <table-plus with="&ModelName.by_state(@my_option)" > > > > > > > > > part="table_by_state"> > > > > > > > > > > Then you should be able to use hobo's part mechanism but > > > > > > > > > you'll have > > > > > > > > > to poke a little to see how to make itupdatea part from JS. > > > > > > > > > > On Nov 12, 3:54 am, Pete <[email protected]> wrote: > > > > > > > > > > > Hi, > > > > > > > > > > > I am trying toupdatea page I have which displays atableof > > > > > > > > > > data, > > > > > > > > > > but which I would like to dynamicallyupdatedepending on > > > > > > > > > > what is > > > > > > > > > > selected in the <select-input> field. > > > > > > > > > > > I have a controller with a method containing thetableplus > > > > > > > > > > info - but > > > > > > > > > > in my view, I would like to dynamically change the content > > > > > > > > > > of the > > > > > > > > > >tableplus, I would imagine I could change something > > > > > > > > > >here....... > > > > > > > > > > > <table-plus with="&@myOption" fields="field1, field2etc" > > > > > > > > > > > > where myOption is the result of the select-input field, > > > > > > > > > > > <select-input options"&[['Latest', '@latestFinished'], > > > > > > > > > > ['All', > > > > > > > > > > '@allFinished'] ]", onchange="upd...@myoption" /> > > > > > > > > > > > @latestFinished, and @allFinished are defined in my > > > > > > > > > > Controller using > > > > > > > > > > my own named_scopes to gather the relevant data. I realise > > > > > > > > > > my select > > > > > > > > > > input is probably completely wrong, but is there something > > > > > > > > > > along these > > > > > > > > > > lines that will work?- Hide quoted text - > > > > > > > > > > - Show quoted text -- Hide quoted text - > > > > > > > > - Show quoted text -- Hide quoted text - > > > > > > > - Show quoted text -- Hide quoted text - > > > > > - Show quoted text -- Hide quoted text - > > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "Hobo Users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/hobousers?hl=en.
