Passing parameter in a Ruby function from HTML

2019-05-29 03:29发布

问题:

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?

回答1:

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"


回答2:

I found the solution to my problem :

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

.rb function:

def showProducts(param)

//Some code

end


回答3:

I found the solution

def showProducts 

 @params['product']

end