The rjs files in active scaffold are all very straight forward, if you look at them you should be able to understand that they are doing. They are mainly just in control of updating the page after an action, for instance, the on_create.js.rjs will replace replace the create form with a new one if the form had errors, or will add the record to the list if the form was submitted correctly.
When you have an embedded scaffold AS looks for method overrides in the Parent controllers helper. When you create or update or what not from the embedded scaffold it actually hits the controller that the scaffold is for. You could remove the logic for your instance variables from the views and make them helper methods, or you could assign them in the controllers On Wed, May 13, 2009 at 2:22 PM, Soren <[email protected]> wrote: > > > Aha! > > the log had the clue - it says: > Rendering student/destroy.rjs > > The page that I need updated belongs to the forms controller, and has > a student and a user embedded scaffold on it. > So it makes sense that the on_create.rjs and destroy.rjs actions > belong to the student view given that this was the AS that I updated > to cause the action. > > So now the on_create.rjs and destry.rjs gets called - the first > problem was instance variables - which controller does this belong to > when they get activated. No obvious solution so I replaced the > instance variable with some code instead. Now that part works. Can > instance variables not be used, and if they can - which is the > corresponding controller method ? > > So when you have multiple embedded scaffolds on one page then you can > tie in to the javascript actions of all the AS' on that page. All you > need to do is to place override methods in the various views > corresponding to the embedded AS's. So in my case drop in > on_create.rjs and destroy.rjs in the student view. > > Shall I contribute a WIKI page to the github on this ? > > And if so - can you please send me a very brief description of what > each of the RJS's in vendor/plugins/active_scaffold/lib/ > active_scaffold/actions does ? > > /S > > On May 13, 10:59 am, Soren <[email protected]> wrote: > > Thanks for the update. > > > > Copied my on_create.rjs to destroy.rjs in the same view. > > > > When I create a new student Firebug/net (all) shows: > > GET new?_method=get&.......... > > GET close.gif > > POST create?eid???? > > > > When I destroy a student Firebug/net (all) shows: > > POST 107?_method=delete&...... > > GET update_table?....... > > > > But no sign of on_create.rjs nor destroy.rjs > > > > The log shows that for destroy the destroy.rjs is rendered > > but it does not show that the on_create.rjs is rendered > > > > /S > > > > On May 12, 11:57 pm, "Sergio Cambra .:: entreCables S.L. ::." > > > > <[email protected]> wrote: > > > El Wednesday 13 May 2009 00:24:16 Soren escribió: > > > > > > Sergio, > > > > > > Thanks for the answer. Finally had some time to play with this. > > > > > > So first of all - I know nothing about how AS works under the hood - > > > > so forgive me if I ask dumb questions. > > > > > > The index page of the controller in question is the one where all the > > > > fun is located. So it has two embedded AS's - one for user and one > for > > > > students. Further down the page it has two dynamic sections - I call > > > > them section3 and section4. > > > > > > If the user has created any students then the section3 needs to be > > > > updated. And if they have completed section3 then section4 get > > > > enabled. > > > > > > I tried to add app/views/<controller>/on_create.rjs (I use rails 2.2) > > > > In that file I have: > > > > page << render(:super) > > > > page.replace_html "section3", :partial => "section3" > > > > page.replace_html "section4", :partial => "section4" > > > > > > On the index page the two sections are properly identified with <div > > > > id=section3> ... </div> etc. The index page further has a > > > > render :partial for both to ensure that it loads in a proper way. > > > > I notice that the on_create gets called when the there is a create > > > > action in the AS, but section3 and section4 are never updated. Do I > > > > need to do something different here. > > > > > Check your on_create.rjs is rendered. Look at network tab in firebug to > get the > > > response, or look for "Rendering <controller>/on_create" in > development.log > > > > > > What other actions can I support? Anything that catches a destroy? > > > > > You can see actions code in > > > vendor/plugins/active_scaffold/lib/active_scaffold/actions to guess > which files > > > are rendered in each action. For destroy, the view is destroy.rjs > > > > > > /S > > > > > > On Apr 27, 2:28 am, "Sergio Cambra .:: entreCables S.L. ::." > > > > > > <[email protected]> wrote: > > > > > El Saturday 25 April 2009 23:27:49 Soren escribió: > > > > > > I have a page upon which I have to embedded scaffolds. > > > > > > > > At some point the user might have created data with those > scaffolds > > > > > > such that additional options to the page should be enabled. > > > > > > > > Any suggestions to cause the page to get reloaded after an CRUD > action > > > > > > on one of the scaffold (simplest solution) or how to cause an > AJAX > > > > > > action to trigger that would update the page with the new > options. > > > > > > > > Is the before_create_save action in AS a path > anyonehassuccessfully > > > > > > used for this ? > > > > > > > > /S > > > > > > > You should add some javascript to the views to reload the scaffold, > or > > > > > add a new link with javascript after a create for example. Try to > create > > > > > a on_create.js.rjs view (in rails 2.3, on_create.rjs in previous > > > > > versions) in your controller's views, call render :super to include > the > > > > > default response and add your javascript code. > > > > > > > For example: > > > > > page << render(:super) > > > > > page.insert_html :top, active_scaffold_tbody_id, 'html code' > > > > > page.insert_html :top, active_scaffold_tbody_id, :partial => > > > > > 'partial_name' page << 'custom JS code' > > > > > > > -- > > > > > Sergio Cambra .:: entreCables S.L. ::. > > > > > Nicolás Guillén 6, locales 2 y 3. 50.018 Zaragoza > > > > > T) 902 021 404 F) 976 52 98 07 E) [email protected] > > > > > -- > > > Sergio Cambra .:: entreCables S.L. ::. > > > Nicolás Guillén 6, locales 2 y 3. 50.018 Zaragoza > > > T) 902 021 404 F) 976 52 98 07 E) [email protected] > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "ActiveScaffold : Ruby on Rails plugin" 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/activescaffold?hl=en -~----------~----~----~----~------~----~------~--~---
