Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p><strong>UPDATE 2015: this was answered in 2009 a lot has changed</strong></p> <p>Plug-ins have been superseded by Gems and Engines For all the information you need on Engines: <a href="http://guides.rubyonrails.org/engines.html" rel="noreferrer">http://guides.rubyonrails.org/engines.html</a></p> <p>Engines are a fantastic way of building encapsulated and reusable code for your rails apps. </p> <p><strong>Original Answer for Reference</strong></p> <p>On the development side Rails Engines and/or plugins is probably what you are looking for. </p> <blockquote> <p><a href="http://casperfabricius.com/site/2006/08/06/inside-rails-engines/" rel="noreferrer">Rails Engines are small subsets of an application that can be dropped into any of your Rails applications and handle common parts of the application from scratch.</a></p> </blockquote> <p>Say for example your social networking application has a wiki, blog, chatroom etc. You would more than likely want to create a wiki engine, blog engine and chatroom engine.</p> <p>Engines allows you to re-use such functionality within different applications so you do not have to repeat yourself.</p> <p>Take a look at: <a href="http://rails-engines.org/" rel="noreferrer">http://rails-engines.org/</a></p> <blockquote> <p><a href="http://rails-engines.org/news/2009/02/02/engines-in-rails-2-3/" rel="noreferrer">Some support for ‘engine’ plugins has been merged into the Rails core codebase in Rails 2.3.</a></p> </blockquote> <p>I would also recommend taking a look at some public projects say on github and see how people have used engines. </p> <p>Take a look at some engines:</p> <ul> <li><a href="http://github.com/sagmor/wiki-engine/tree" rel="noreferrer">Wiki-Engine</a></li> <li><a href="http://github.com/brownbeagle/skinny_blog_engine" rel="noreferrer">Skinny-Blog-Engine</a></li> </ul> <p>Other useful links for reading</p> <ul> <li><a href="http://robots.thoughtbot.com/post/159805560/tips-for-writing-your-own-rails-engine" rel="noreferrer">Tips for writing Engines</a></li> <li><a href="http://railscasts.com/episodes/149-rails-engines" rel="noreferrer">Rails Engines, Railscast by Ryan Bates</a></li> <li><a href="http://yehudakatz.com/wp-content/uploads/2009/05/russiandolls.pdf" rel="noreferrer">The Russian Doll Pattern (PDF)</a></li> </ul> <p>In functionality terms you could still have an admin area that could activate certain features ie. your blog or wiki by allowing users access to such areas with a permissions/roles system.</p> <ul> <li><a href="http://github.com/be9/acl9/" rel="noreferrer">ACL9</a></li> <li><a href="http://github.com/timcharper/role_requirement/" rel="noreferrer">role_requirement</a></li> <li><a href="http://github.com/technoweenie/restful-authentication/" rel="noreferrer">restful-authentication</a></li> </ul> <p>If you want to build a CMS which supports some kind of extensions like in Wordpress or Joomla then you will have to either build it and provide guidlines or at least look into how you would upload/install Engines/Plugins from a user perspective. </p> <p>Not sure on the security implications of this</p> <p><a href="http://www.redmine.org/wiki/1/Plugins" rel="noreferrer">Redmine</a> has put this kind of functionality into their awesome application. You may want to dig around the <a href="http://github.com/edavis10/redmine" rel="noreferrer">source code</a> for tips and clues</p> <p>Finally <strong><a href="http://github.com/svenfuchs/adva_cms" rel="noreferrer">Adva_CMS</a></strong> has basically adopted this approach and have created <a href="http://github.com/svenfuchs/adva_cms/tree/master/engines/" rel="noreferrer">a number of Engines</a> for their CMS application </p> <p>HTH</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload