Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3699490
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 19, 20262026-05-19T05:06:33+00:00 2026-05-19T05:06:33+00:00

Here’s our basic requirements: We have a base Rails application, which is being actively

  • 0

Here’s our basic requirements:

  • We have a base Rails application, which is being actively maintained.
  • We want to offer a customized version of this app, given that:
    • servers must reside in our customer’s premise and run on a different domain.
    • there’s a specific logging instrumentation for their own monitoring in the datacenter.

To do that, I can see several options to achieve that goal:

  • Git branch
  • Rails::Engine
  • Rails::Application

The most obvious answer would be Git branch, for full flexibility.

However I’m not sure if it’s a good idea, because the code base is largely shared and the mainline has a lot more activities – catching up with rebase / merge could be just extra hassle.

We want to decouple the original and the customized versions as far as possible. In other words, we want to have as less often conflicts as possible between the original and the customized.

Rails::Engine or Rails::Application seemed like a close idea (I’m not familiar with Rails Engines), but I don’t understand how to have OurApp::Application and OurCustomizedApp::Application in one place and switch between them globally and dynamically.

Probably it would be nice to have:

  • custom initializers, controllers and views in a separate directory to override (or patch) the original
  • ability to specify which app (the original or the customized) to boot by an environment variable like RAILS_APP
  • separate config files, like so: config/database.yml to be config/customer1/database.yml
  • ability to use the same deploy.rb for capistrano (probably with config/servers.yml and config/customer1/servers.yml to define roles and IPs?)

Is there practices / conventions for our requirements? Any advice?

Our apps run on Ruby 1.9.2 + Rails 3.0.3.

UPDATE

We started it as a Git branch. We created a rake task to generate a file at config/branch that includes text like “master” or “customized”, and application.rb reads it upon bootstrap. Configs like database.yml or servers.yml now live in config/mainline/ or config/customized/, and application.rb handles them accordingly.

config.paths.config.database = "config/#{branch}/database.yml"

Not perfect, but good enough for now. I’ll update when we find a better way to do this.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-19T05:06:33+00:00Added an answer on May 19, 2026 at 5:06 am

    I know it’s not the precise answer you’re after, but I believe Git is going to be the least amount of work – and the easiest to manage, long-term – over customising the app and adding logic to handle the additional config files, modifying your deploy files and also managing the (potentially) new css/js/template files.

    Using rebase & merge are going to be a lot less error-prone, and as long as you keep your branches synced on a regular basis, you shouldn’t have any serious problems keeping them both up-to-date. After all, that’s what Git is good at! 😉

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Here's a basic regex technique that I've never managed to remember. Let's say I'm
I'm trying to decode HTML entries from here NYTimes.com and I cannot figure out
I have just tried to save a simple *.rtf file with some websites and
I used javascript for loading a picture on my website depending on which small
I have a jquery bug and I've been looking for hours now, I can't
That's pretty much it. I'm using Nokogiri to scrape a web page what has
I ran into a problem. Wrote the following code snippet: teksti = teksti.Trim() teksti
I'm looking for suggestions for debugging... If you view this site in Firefox or
Basically, what I'm trying to create is a page of div tags, each has
Is it possible to replace javascript w/ HTML if JavaScript is not enabled on

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.