【问题标题】:Sinatra: how to use helpers in dynamically generated routes?Sinatra:如何在动态生成的路线中使用助手?
【发布时间】:2014-12-14 07:19:21
【问题描述】:

我使用以下代码为数据库中的每个产品创建一条路线:

Products.all.each do |product|
  get "/#{product.title.latinize}"
  end
end

class String
  def latinize
    self
  end
end #or with helpers

这会引发 NoMethodError: undefined method `latinize' for "hello":String

如何从 Sinatra 中动态生成的路由中使用帮助程序(或此处所见的类的扩展)?

【问题讨论】:

  • 我可能错了,你有没有试过在使用前定义它?

标签: ruby scope sinatra


【解决方案1】:

这可能是因为您在生成路由之后定义了latinize 方法。移至Product.all 部分上方。

【讨论】:

  • 确实如此,谢谢!在代码中向上移动它们对帮助器和类都有效。我虽然 Sinatra 以某种方式解决了这个问题。
猜你喜欢
  • 2011-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-11
  • 1970-01-01
  • 2013-05-09
  • 1970-01-01
  • 2012-12-09
相关资源
最近更新 更多