Both the User and Login engines could do with serious refactoring with
a view to making them much cleaner in terms of overriding behaviour. A
big part of this is probably going to be establishing a clear API for
both. Let the discussion commence!

- james

On 2/28/06, Bart Masschelein <[EMAIL PROTECTED]> wrote:
> Hello,
>
> I'm using the UserEngine in my Rails application, in casu Riki. In the
> page to create a new book, the administrator can select the book
> administrator for that book, or create a new one if it does not exists.
> In that case I link_to /user/new, but in the normal case I get
> redirected to /user/list, whereas I would like to be redirected back to
> the /book/create page. I solved this in the following way:
>
> 1) I added at the top of my create.rhtml (or in the create action)
>     session['return-to'] = '/books/create'
> 2) And I changed the new action in the user controller to
>
>               if session['return-to']
>                 redirect_to session['return-to']
>               else
>                 redirect_to :action => 'list'
>               end
>
> In that case I get redirected back to the create book page. This is one
> way, but I have the feeling that it is not the most elegant. I could of
> course copy the complete new action, but this goes against the DRY
> principle, and against the reusability of Engines. In the end, I might
> have copied all code inside my rails application. This follows a
> discussion I had with Jay:
>
>  >Another thing to think about: You want the engine to be easily
> extensible without folks having to modify the actual engine files, or
> cut-and-paste >huge swaths of code.  So keeping subroutines short (and
> thus keeping overrides granular) is even more important than it is in
> "normal" code.  >UserEngine does a good job of keeping the "core" code
> under lib, but I still found I had to copy an entire action from
> user_controller just to change >one string.  I'm not sure I can think of
> specific patterns to encourage for extensibility, but it's something
> that should be kept in mind.
>
> Or there other ways to solve this, I mean, reusing engine code efficiently?
>
> By the way, I still have then another problem in this way. When the
> administrator has already filled in some fields of the form, they get
> lost when he gets back to the create page. I know this is probably more
> a Rails question in general, but does anybody has some ideas on how to
> keep the field data? My gutfeeling is that it is lost, unless I
> integrate it all together, by integrating the new user partial into the
> create form, and duplicating the user/new code.
>
> How could this be rewritten, so the new action of the user controller
> could be reused? Or is this not the purpose of Engines, and maybe more
> of plug-ins, where Engines are meant to be more complete applications?
>
>
>
> enjoy!
>
> Bart
> _______________________________________________
> engine-users mailing list
> [email protected]
> http://lists.rails-engines.org/listinfo.cgi/engine-users-rails-engines.org
>


--
* J *
  ~
_______________________________________________
engine-users mailing list
[email protected]
http://lists.rails-engines.org/listinfo.cgi/engine-users-rails-engines.org

Reply via email to