I've created a set of resources, with scaffolds that all work. I then changed one resource to be nested inside another as a one to many relation. This required a little bit of work on the tests, the controllers and the views but it all works. Now I want to go the extra step and have the child resources become updateable inside the parent form. I've pushed the formatting of the child forms into partials which I can call inside the parent form. This allows me to display a list of the children inside a parent form. Standard stuff. Now the next step ... I want to use AJAX to update the child models inside the parent form. The idea is that when I've got a list of the children on the parent form, I can click the edit/delete links for a line and it will pull up the edit form inside the parent form, allow me to edit the record, then update it and close the section down again. I've got most of this done, I can get as far as AJAXing an edit form for the child into the parent form, updating that, which updates the activeRecord and then .... Well it still sends me off to the show method on the child controller, not what I want so I have to do the next step and .... Someone else must have done this, I don't want to have to re-invent the wheel at every step, it's such a common task there must be some good step by step examples. But I can't find them. I've tried using ActiveScaffold which is OK, but it doesn't really do what I need it to do, and it's broken in Rails 2.1, which requires patching some fixes into the current code and the fixes are things that were done ages and ages ago but aren't in the current release and .... , I've just not got the patience for this sort of thing. Which is why I thought I'd do the job simply and cleanly by working forwards slowly from the autogenerated scaffold code. So please don't suggest ActiveScaffold. Any other suggestions? If there really are no good examples for such a common design pattern I'll put up a solution somewhere public when I've done it. But I can't believe there isn't one already. Thanks John S.
on 2008-11-05 18:08
on 2008-11-05 22:52
There's really no magic here. The default response to an update in the scaffolded controller is to redirect to the show event. If you want to do something different (ie., the convention doesn't work for you) then go to the scaffolded controller and change it. I'd guess you want to redirect to the show event of the parent (rather than the child). On Nov 5, 11:08 am, John S. <email@example.com>
on 2008-11-06 08:47
AndyV wrote: > There's really no magic here. The default response to an update in > the scaffolded controller is to redirect to the show event. If you > want to do something different (ie., the convention doesn't work for > you) then go to the scaffolded controller and change it. I'd guess > you want to redirect to the show event of the parent (rather than the > child). > > On Nov 5, 11:08 am, John S. <firstname.lastname@example.org> Yes, it's not magical. It's just a case of working through the changes, which I went ahead and did. I'd made it just that little bit more difficult for myself by trying to keep the old non-ajaxified actions running in parallel, which as you say redirect to the show in the child not the parent. Mmmm since it's so general I wonder if it's possible to write a generator to implement the pattern, saves all that typing. Thanks John S.