Turns out that if you have destroy.rjs and on_create.rjs and you
upgrade to rails2.3 then the on_create action dies after you click
submit. The records are created etc etc, but the AJAX cleanup never
happens.

So I tried to copy both to their Rails 2.3 names of on_create.js.rjs
and destroy.js.rjs and then things work fine.

So for an environment in transitions create both sets (or link them to
each other) and don't worry about those.

/S


On May 13, 12:28 pm, Kenny Ortmann <[email protected]> wrote:
> 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to