【问题标题】:Passing parameter in a Ruby function from HTML从 HTML 在 Ruby 函数中传递参数
【发布时间】:2017-11-17 22:42:03
【问题描述】:

我有两个文件。 .rb(带有 Ruby 代码)和 .erb(带有一些 ruby​​ 脚本的 HTML 文件)。我正在从 .erb 调用 .rb 中的 Ruby 函数。

.erb

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

.rb

def showProducts(param)

//Some code

end

我可以在不向其传递参数的情况下调用函数。但是当我将参数传递给函数然后调用它时,我收到一个错误。我知道这是从 .erb 调用参数化函数的错误方法。从 HTML 调用参数化函数的正确方法是什么?

【问题讨论】:

  • 看起来你的语法是正确的。什么不工作?你遇到了什么错误?
  • 它只是作为“加载页面错误”。
  • 那么您将在日志中找到更多详细信息。这说明了什么?
  • 当我尝试调试时,控制不会进入函数内部。 (我尝试了下面的解决方案,但仍然没有成功)。
  • 是的,正如我在上一个问题中所问的,log 说了什么?不是调试器——log?

标签: html ruby function rhodes


【解决方案1】:

如果您将另一个键/值对添加到 url_for 中的哈希中

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

您的网址应该从 http://localhost:3000/showProductshttp://localhost:3000/showProducts?product=toaster

在这里,我们向 GET 请求添加参数。要在控制器中访问这些参数,我们使用 params 哈希。例如获取product (toaster):

params[:product] #=> "toaster"

【讨论】:

    【解决方案2】:

    我找到了解决问题的方法:

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

    .rb 函数:

    def showProducts(param)
    
    //Some code
    
    end
    

    【讨论】:

      【解决方案3】:

      我找到了解决办法

      def showProducts 
      
       @params['product']
      
      end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-01
        • 2015-04-07
        • 1970-01-01
        • 1970-01-01
        • 2016-06-17
        • 1970-01-01
        • 2018-07-21
        • 1970-01-01
        相关资源
        最近更新 更多