We build user-friendly online tools to grow your business.
We'll help you bring your ideas into a demonstrable and clickable reality.
Design and development of your Ruby on Rails application.
Ongoing code maintenance for your Ruby on Rails application.
24/7 dedicated Ruby on Rails Operations as a Service for your Rails application, keeping it online and secure.
View Case Study
The blueprint that has been developed leaves me with confidence to expand with new features, that will respect many of the lessons learned during wireframing and prototyping with Ildikó.Tim Koopman
View case study
We are delighted with the result, which has transposed into increased online sales and positive feedback from our customers. We look forward to continuing to work with reinteractive on future developments and enhancements to ensure that we stay ahead of the game.Zlata Relin
If you are not completely happy with the result when we are done, we will give you $10,000 worth of our development time, at no charge, to make it right.
We appreciate that a lot of learning comes from experience so we like to give back and share our knowledge with Ruby on Rails Installfest and Development Hub, to help our community grow.Learn more
Development Hub is our monthly free gathering where you can work on whatever Ruby on Rails problem you like. Get help to debug that annoying bit of code or just come and hack, all are welcome!
reinteractive's Rails Installfest initiative is helping hundreds of developers get introduced to Ruby on Rails. We welcome people who are brand new to Rails to get their first Rails blog online in ...
reinteractive is an organisation made up of individuals. We take pride in our team. Without them, we are just an empty shell.Meet our awesome team and tell us how we can help
Recently we had a client project using Wicked PDF and wkhtmltopdf on Rails. The application needed to generate PDFs both in English and Chinese characters using a custom font for printing that was compatible with both Mac and Windows desktops.
This apparently simple problem proved to be a rabbit hole of considerable depth.
I recently come across some surprising code involving exceptions which prompted me to look a bit deeper into exceptions in Ruby. In this post, I would like to share some of what I found.
This is where it all started. I had a script that did something like the following (it was not quite this simple, but it shows the important parts):
Recently, a new client approached us with a performance problem on their existing Ruby on Rails application; they were experiencing massive growth with over 50,000 new users per day signing up, and their app was receiving over 400 requests per second (and growing).
The rapidly increasing load was leading to big problems, with their existing Rails application experiencing frequent outages and causing sleepless nights for their team. They asked reinteractive to investigate and find out how we could get the app stable as fast as possible.
If you are familiar with Rails, you know that it has a predefined directory structure. Rails was one of the early adaptors of the MVC (Model, View, Controller) pattern. In fact that is one of the key strengths of the framework; it is easy to learn since everything has its own place. This is all well and good if your Rails app is relatively a small one - but when your app starts growing with features and functionality, soon you will find some code snippets that don’t seem to fit into the standard Rails directory structure. This is when these methods tend to get pushed to the ActiveRecord models. However, not all of these methods directly relate to a model; often these methods contain some validations required by the business/client.
In such scenarios, implementing the logic via service objects or services would be a good idea. Simply put, a “service object” is a Ruby class that contains some of the application's business logic without pushing it to the ActiveRecord layer. Often, a Service is a PORO (Plain Old Ruby Object).
RUBYGEMS_GEMDEPS is a 'new' environment variable for RubyGems(>=2.2.0). With this line of code in your
You don't need to type