【问题标题】:Erb with Sinatra in rubyErb 与红宝石中的 Sinatra
【发布时间】:2011-02-03 19:49:24
【问题描述】:

所以我有一个使用 sinatra 构建的网络服务器,其内容如下:

set :variable,"value"
get '/' do
  erb :index
end

当然,views/index.erb 中的模板看起来像这样:

<html>
<!-- etc -->
  <ul>
  <% my_array.each do |thing| %>
  <%="Something: #{thing}, variable from sinatra: #{settings.variable}"%>
  <% end %>
  </ul>
</html>

如果您尝试运行这样的代码,您会注意到您无法从 erb 模板中访问 sinatra 的设置变量。有什么想法可以在保持其简单性的同时实现这一目标吗?

提前致谢!

【问题讨论】:

  • 我问这个问题是为了haml,也许答案对你有帮助:stackoverflow.com/questions/2129387/…
  • 我猜这些设置在控制器中可用?如果您希望它们在视图中可用,则必须传递它们。
  • 我的回答错了。设置方法应该在视图中可用。您发布的代码对我来说很好。
  • 奇怪,我得做更多的测试!谢谢

标签: ruby sinatra erb


【解决方案1】:

我使用的是旧版本的 Sinatra - 已更新到 1.0 版,它运行良好 :)

谢谢大家!

【讨论】:

    【解决方案2】:

    我有一个类似的问题,解决方法是确保所有 set :x, "y" 的东西都发生在类声明中(我的 Sinatra::Base 的子类)在初始化方法之外。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-01
      • 1970-01-01
      • 2019-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多