Ruby on Rails for Windows

Ruby is multiplatform language. But not all OS suit it good enough. Especially, Windows
21 June 2017   5652

Traditionally, it is customary to work with Ruby on Linux or Mac OS. But sometimes it becomes necessary to develop Ruby on Rails on Windows. For example, in a situation where there is no computer with a more suitable OS at hand, and there is no desire or opportunity to raise a virtual machine. Let's see how well Ruby feels in the operating system from Microsoft.

Ruby

A dynamic, open source programming language, focused on simplicity and productivity
 

Ruby on Rails

Ruby on Rails (RoR) - a framework written in the Ruby programming language

Is it possible to install Ruby on Rails on Windows?

Yes. You can run a full-fledged server for RoR windows development. The easiest way to do this is to use the RailsInstaller utility, which also includes support for the Ruby on Rails framework. After downloading the application, just run the .exe file and follow the installer's instructions. Any version of Windows is supported, starting with XP.

For those, who would like to control the Ruby installation process on Windows, there is an opportunity to install all necessary modules. Process looks like this:

  1. Download and unpack Ruby from here;
  2. Install Development Kit;
  3. Unpack SQlite to Ruby directory;
  4. Install SqLite and necessary gems and frameworks using Ruby's Comand Prompt.

rubyinstaller
RubyIntaller webpage

Rubyinstaller is made for Windows 7 and upper, his workability under Windows XP, Windows Server, Windows 2000, Windows NT, Windows Vista, Windows 98 and older isn't guaranteed.

What problems can appear while running Ruby on Rails on Windows?

As a rule, these type of instructions finishes with the worlds: “Now Ruby for windows is ready to work” but not in this case. Installation is the smallest issue that you will face. You will also have to deal with:

  • Wrong time format. Due this issue, errors with gems installation can appear, even with Ruby on Rails framework. In order to fix this issue, you have to change all time formats in "specification" directory to s.date = %q{2017-01-01}.
  • Issue with gems launch, such as Nokogiri, Devise, Selenium-webdriver. Sometimes they just dont work with Windows and it’s hard to find the cause of the problem because there’s no info in documentation. Sometimes it is impossible to fix such bugs.
  • Slow interpreter. For example, if Guard is used as a command line, standard test can take more than a minute.
  • Many popular Ruby web-servers aren't supported for Windows.

Due to all these issues, there aren’t many Windows Ruby developers. That’s why the gem developers don’t test their products on Windows or just don’t bother about it’s workability on Windows. So, there is no need to wait when Windows will become more friendly with Ruby.

Running Ruby or Ruby on Rails on Windows is a difficult task without any final profit. Most of Ruby features wont run in Windows. a beginner can find large amount of learning courses with in-browser coding, so even for a first steps in Ruby, windows is a bad choice. As for me, I’ve started learning Ruby on Linux.
 

Andrey Axenov
Evrone Back End developer

Ruby IDE for Windows

Most of the standard text editors work great with Ruby on Windows. But, if you need a Ruby on Rails Windows IDE, the choice is not very big.

RubyMine. Specialized development environment from JetBrains. It works with any windows version, starting from xp, including 64-bit systems; supports all popular Ruby frameworks, project creation and management, great code integration with autocompletion and fast navigation. Also, application can be used for other programming languages, such as: JavaScript, HTML, CSS.

Disadvantage - high price with the need of prolongation for every year.

NetBeans. Free IDE, supports Windows Vista and higher, including 64-bit systems, but doesn’t support Windows 10. Besides Ruby, HTML, CSS, PHP, Java, C, C++ are also supported.

Features:

  • Debugging tools that monitor the performance speed of the application in the real time and factors, that influence it.

  • Ability to create own plugins easily.

  • Ability to deploy created projects outside the IDE.

Komodo. Environment supports Windows 7 and higher, also including Windows Server 2008 and higher. Powerful development tool that fully supports more than 100 programming languages. Popular bug tracker services, Ruby frameworks, code debugging, simultaneous work with several projects are also supported. But, universality has high price.

My friend recently started to learn Ruby on Rails, I’m his mentor. He had a big drama trying to install Ruby on Rails on windows, without any luck. There are many jokes in developers community regarding Rails and Windows connectivity. I would recommend for every Ruby newbie to learn it straight on Linux or Mac os.
 

Dmitry Karpunin
Chief Front-End Developer at Evrone

When it is necessary to run Ruby on Rails on Windows?

If you have an opportunity - don’t do that. If you'll run Ruby on Rails for Windows, sooner or later you will face insoluble problems that will slow down your development or even make it impossible. If you are able to work with this programming language on Linux or Mac OS, that’s the thing you have to do.

So when it is necessary to run Ruby on Rails on Windows?

  1. You don’t have proper equipment by the hand, but you gotta code right now. For example, your PC is broken, and the only left computer is very old and it cannot support virtual machine. But even in this situation you can use Engine Yard or Cloud9 as an option.
    Feel free to learn more about the best Ruby IDEs
  2. You would like just to test Ruby. For example, you’ve started to learn this programming language recently. You can make first steps in Windows. if you don’t need gem support, clean Ruby on Rails for Windows works great.
    Here you can have more info about learning Ruby on Rails and Ruby on Rails guides.

In all other cases, Ruby on Rails development on Windows will bring more issues than profit.

Are you working with Rails on Windows?

Are you ready to work with Ruby on Rails using Windows operating system despite all its abovementioned disadvantages? Or you are using another OS for Ruby on Rails development? Please, share your thoughts with the community. Also, after the voting, you will be able to see what people like the most.

Yes
63% (5 votes)
No
38% (3 votes)
Total votes: 8

Ruby and Rails to Get New Updates

Six vulnerabilities in the RubyGems package management system are now fixed and three in Rails framework
14 March 2019   437

There are corrective versions of the Ruby 2.6.2 and 2.5.4 programming language, which eliminate six vulnerabilities in the RubyGems package management system:

  • CVE-2019-8324: the ability to execute code when installing an untested package (an attacker can place the code on the gemspec and this code will be executed via a call to eval to ensure_loadable_spec at the verification stage before installation);
  • CVE-2019-8320: the ability to delete directories through manipulations with symbolic links when unpacking tar files;
  • CVE-2019-8321: the ability to substitute escape sequences through the handler Gem :: UserInteraction # verbose;
  • CVE-2019-8322: the ability to substitute escape sequences through the command "gem owner";
  • CVE-2019-8323: Ability to substitute escape sequences in the API handler (Gem :: GemcutterUtilities # with_response);
  • CVE-2019-8325: The ability to substitute escape sequences through error handlers (Gem :: CommandManager # run calls alert_error without escaping characters).

In addition, an update was provided to the Rails 4.2.11.1, 5.0.7.2, 5.1.6.2, 5.2.2 framework. and 6.0.0.beta3 with the elimination of three vulnerabilities:

  • CVE-2019-5420 - potentially allows you to remotely execute your code on the server, when Rails is running in Development Mode. If there is information about the attacked application, you can predict the automatically generated mode token for developers, knowledge of which allows you to achieve the execution of your code;
  • CVE-2019-5418 is a vulnerability in the Action View that allows you to get the contents of arbitrary files from the server's file system by sending a specially crafted HTTP Accept header if the code in the "render file:" handler is present.
  • CVE-2019-5419 - DoS-vulnerability in Action View (MODULE / COMPONENT), allowing to achieve 100% load on the CPU through manipulations with the contents of the HTTP-header Accept;