Nitish
Nitish

Reputation: 14123

Passing parameter in a Ruby function from HTML

I have two files. .rb (with Ruby code) and .erb(HTML file with some ruby script). I am calling a Ruby function in .rb from .erb.

.erb

<a href="<%= url_for :action => :showProducts(i) %>">Click here</a> 

.rb

def showProducts(param)

//Some code

end

I am able to call a function without passing parameters to it. But as and when I pass parameters to function and then call it, I receive an error. I know this is the incorrect way to call a parametrized function from .erb. What is the correct way of calling a parameterized function from HTML?

Upvotes: 2

Views: 2841

Answers (3)

MaNaSu
MaNaSu

Reputation: 49

I found the solution

def showProducts 

 @params['product']

end

Upvotes: 0

Nitish
Nitish

Reputation: 14123

I found the solution to my problem :

<a href="<%= url_for :action => :showProducts, :id=> 'Hello' %>">  

.rb function:

def showProducts(param)

//Some code

end

Upvotes: 1

Alex Peattie
Alex Peattie

Reputation: 27667

If you add in another key/value pair to the hash in url_for

<%= url_for :action => :showProducts, :product => "toaster" %>

Your URL should go from, say, http://localhost:3000/showProducts to http://localhost:3000/showProducts?product=toaster

Here, we're adding parameters to the GET request. To access these parameters in the controller we use the params hash. For example to get the product (toaster):

params[:product] #=> "toaster"

Upvotes: 1

Related Questions