Using AJAX with Rails

Using AJAX with Rails
Average rating: 4.5
(2 votes)

Thanks! You’ve rated this material!

Using Rails you can sometimes face some tricky situations. For example, the normal flow of visiting a website is that you load a page and if you want to see new information you have to either reload the page to update it or click a link to visit a different page. But what if you don’t want this page to reload? This is where AJAX comes in. In this article, we would tell you about using AJAX with Rails.

AJAX stands for Asynchronous Javascript & XML. It’s a technique that’s independent of your web framework, but Rails specifically has good support for it as you’ll learn in this article. Keep in mind that adding AJAX into your app makes it more complex.

AJAX has two parts, the request, which you make from the browser using Javascript, and the response, which you handle from your Ruby app. You can make an AJAX request with plain Javascript.

If you want to update only part of your page with the data you get from AJAX, you have mostly two options.

  1. You can write a Javascript + ERB view, which updates the element
  2. You can return a JSON response from your controller with the new HTML as a string, then use Javascript to update the element

There is also a 3rd option. It involves returning only the data as JSON, then generating the HTML elements with Javascript using that data. This is where JS frameworks like React come in.

If you want to submit a form using AJAX you can do this without having to write an AJAX request. Rails can handle it for you. Use the remote: true option with form_for.

Remember that AJAX isn’t required to make your regular (non-JS framework) Rails app work, but it’s something that is helpful to have in your toolbox. Find more examples here.


And we can recommend you the article about StringScanner Ruby gem that provides lexical scanning operations on a string. It can help you win your daily fight with matching operations and moving a scan pointer.

Rate this article, if you like it

Thanks! You’ve rated this material!

Got a project? Let's discuss it!

*By submitting this form you agree with our Privacy Policy.

Mailing & Legal Address

Syndicode Inc. 340 S Lemon Ave #3299, Walnut CA, 91789, USA

Visiting & Headquarters address
Kyiv Sofiivska 1/2a, 01001, Kyiv, Ukraine
Dnipro Hlinky 2, of. 1003, 49000, Dnipro, Ukraine
Email info@syndicode.com
Phone (+1) 9035021111