Passing parameter in a Ruby function from HTML

久未见 提交于 2019-12-23 01:27:11

问题


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


来源:https://stackoverflow.com/questions/8135977/passing-parameter-in-a-ruby-function-from-html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!