run simple method from Helper on button click

Greetings, I'm new to rails and currently having couple problems about how to add javascript functionality into rails.

I have a simple method in the helper and i want to run this code on button click.

The button_to_function method’s second argument should be JavaScript, not Ruby.

See: http://api.rubyonrails.org/classes/ActionView/Helpers/JavaScriptHelper.html#method-i-button_to_function

You cannot call Ruby code directly from client side. You have to send an AJAX request to some controller for this purpose.

Kashif Umair Liaqat wrote in post #1125837:

You cannot call Ruby code directly from client side. You have to send an AJAX request to some controller for this purpose.

How would I do that? I have no knowledge of AJAX

Suppose you have a controller HomeController. It should look like below.

home_controller.rb

class HomeController < ApplicationController
  # GET /show_message
  def show_message
    format.js { render js: "alert('simple output');" }
  end
end

and in your routs.rb file add this line

get '/show_message', 'home#show_message', as: :show_message

and in your view add this line

<%= link_to "Print", show_message_path, remote: true %>

After this when you click on Print link, and AJAX request will be sent to HomeController’sshow_message action and it will display a javascript alert.

For better understanding of AJAX requests in Rails, follow this tutorial - http://www.tutorialspoint.com/ruby-on-rails/rails-and-ajax.htm :slight_smile:

Thanks a lot!