<div dir="ltr">I know you've said you don't want to go to the extreme of a Rails API with a JS front end, but have you really considered this option? Your Rails app will shrink down to almost nothing. Each controller will be trivially easy to unit test. <div><br></div><div>Adding additional apps backed by the same API will be easy. If you need to add additional features that don't really belong in the main app you can break them out into a separate app. Your views will be just a series of ultra lightweight templates, perhaps even static templates that you can serve right out of Redis and compile in the DOM. If you need a mobile app, it's just a different set of views.</div><div><br></div><div>The main downside is CORS in IE, but with a closed set of users this shouldn't be so much of a problem.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 19 May 2015 at 10:21, Karl Entwistle <span dir="ltr"><<a href="mailto:me@karlentwistle.com" target="_blank">me@karlentwistle.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I recently created a Rails Engine for the agency I work at. We wanted to<br>
share some commonality between our apps. We've found the Rails engine<br>
approach useful to achieve this.<br>
<br>
>From a testing perspective you might have to look at the source code for<br>
Devise, Spree and ActiveAdmin to see how they've achieved this. They<br>
typically have a dummy rails app within their test directoy that they<br>
use to perform integration tests against. In your case this dummy app<br>
could include the basic authentication dependency you mentioned.<br>
<br>
<a href="https://github.com/plataformatec/devise/tree/master/test/rails_app" target="_blank">https://github.com/plataformatec/devise/tree/master/test/rails_app</a><br>
<br>
<a href="http://ryanbigg.com/2012/04/integration-testing-engines/" target="_blank">http://ryanbigg.com/2012/04/integration-testing-engines/</a><br>
<br>
Cheers<br>
<span class="HOEnZb"><font color="#888888">Karl<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Tue, May 19, 2015, at 10:10 AM, Alejandro Andres wrote:<br>
> I've done something similar, sepparating the apps by subdomain, using the<br>
> same rails app. That way you have a 'namespace' for each app (the<br>
> subdomain). For shared data I had an api subdomain (but beware because<br>
> then<br>
> you'll have to use CORS)<br>
><br>
> Hope it helps :)<br>
><br>
> -<br>
> Alejandro Andrés<br>
> Partner at <a href="http://redradix.com" target="_blank">redradix.com</a><br>
><br>
> On Tue, May 19, 2015 at 11:08 AM, Kerry Buckley <<a href="mailto:kerryjbuckley@gmail.com">kerryjbuckley@gmail.com</a>><br>
> wrote:<br>
><br>
> > Hi LRUG,<br>
> ><br>
> > I have a small Rails app used by a closed set of internal users, and am<br>
> > about to create another, for the same users (or at least an overlapping<br>
> > group). They've asked that the two apps (and potentially more over time)<br>
> > are presented as one integrated front end, rather than users having to<br>
> > visit multiple URLs, log in separately etc.<br>
> ><br>
> > I'm wondering what the best approach to this is. I don't want to go to the<br>
> > extreme of a JS front end with the Rails apps just presenting JSON APIs, so<br>
> > the main options seem to be:<br>
> ><br>
> > * Separate apps with matching layouts, and headers, with some kind of<br>
> > single sign-on<br>
> > * One big app with namespaced routes, controllers etc to try and keep<br>
> > things vaguely separated<br>
> > * Separate apps into Rails engines, mounted in a master app that manages<br>
> > sessions etc<br>
> ><br>
> > I'm kind of leaning towards the third option, but I've never used Rails<br>
> > engines before, and I'm not 100% sure how that approach would work out. My<br>
> > main concern is acceptance/integration tests – it seems to me like they'd<br>
> > have to live in the wrapper app as most of them would rely on users,<br>
> > sessions etc.<br>
> ><br>
> > Has anyone had experience of this kind of thing, and if so, which of the<br>
> > above approaches would you recommend (or discourage)? Is there a better<br>
> > solution I've missed? I'm about to start spiking something with engines to<br>
> > see how things fall together, but some opinions from someone who's done it<br>
> > in anger would be great!<br>
> ><br>
> > Thanks,<br>
> ><br>
> > Kerry<br>
> ><br>
> > _______________________________________________<br>
> > Chat mailing list<br>
> > <a href="mailto:Chat@lists.lrug.org">Chat@lists.lrug.org</a><br>
> > Archives: <a href="http://lists.lrug.org/pipermail/chat-lrug.org" target="_blank">http://lists.lrug.org/pipermail/chat-lrug.org</a><br>
> > Manage your subscription: <a href="http://lists.lrug.org/options.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/options.cgi/chat-lrug.org</a><br>
> > List info: <a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a><br>
> ><br>
> ><br>
> _______________________________________________<br>
> Chat mailing list<br>
> <a href="mailto:Chat@lists.lrug.org">Chat@lists.lrug.org</a><br>
> Archives: <a href="http://lists.lrug.org/pipermail/chat-lrug.org" target="_blank">http://lists.lrug.org/pipermail/chat-lrug.org</a><br>
> Manage your subscription: <a href="http://lists.lrug.org/options.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/options.cgi/chat-lrug.org</a><br>
> List info: <a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a><br>
_______________________________________________<br>
Chat mailing list<br>
<a href="mailto:Chat@lists.lrug.org">Chat@lists.lrug.org</a><br>
Archives: <a href="http://lists.lrug.org/pipermail/chat-lrug.org" target="_blank">http://lists.lrug.org/pipermail/chat-lrug.org</a><br>
Manage your subscription: <a href="http://lists.lrug.org/options.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/options.cgi/chat-lrug.org</a><br>
List info: <a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a><br>
</div></div></blockquote></div><br></div>