ruby - 如何使用 Sinatra 中的 MongoMapper 访问 Mongo 数据库键以在 Haml View 中呈现值?

标签 ruby mongodb sinatra mongomapper

我很难在 Haml 中呈现 View ,将 MongoMapper 用于我正在开发的小型 Sinatra 应用程序。 我这里有这个,我知道查询还不错:

get '/admin' do
  protected!
  @title = "admin"

  @total_items = Item.all(:order=>:itemtype.desc)

  haml :admin, :locals => @total_items
end

现在,问题是,我试图在我的 Haml View 中使用 @total_items 实例变量,以便能够在使用循环检索每个项目后输出有序列表中的键:

%div 
  %img     
  - @total_items.each do |item|
  %h3= item

我卡住了。如何访问 key ?谢谢!

最佳答案

您的代码存在一些问题:

如果您使用实例变量,则不需要使用 :locals。无论如何,它们都可以在您的 View 中访问。因此,要么使用 total_items 并使用 :locals ,要么使用 @total_items 并按照您的 View 访问它们。顺便说一句,:locals 是这样使用的:

haml  :admin, :locals => {:items => total_items}

然后您可以在 admin.haml 中访问您的 total_items 作为 items

回到您的问题:在您的 admin.haml 文件中有一个很容易修复的小错误:确保缩进正确。毕竟这就是 haml 的意义所在:

%div 
  %img     
  -items.each do |item| # I use the above mentioned :locals with items instead of total_items
    %h3= item

编辑: 您甚至可以通过从 View 中查询项目来使其更简单:

%div 
  %img     
  -Item.all(:order=>:itemtype.desc).each do |item|
    %h3= item

PS:%img 标签有什么用?它未在您的示例中使用。

关于ruby - 如何使用 Sinatra 中的 MongoMapper 访问 Mongo 数据库键以在 Haml View 中呈现值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9798357/

相关文章:

ruby-on-rails - 如何从我的数据库中获取用户 ID -- rails

Ruby 一行代码,中断一个 block

ruby - 在 Ruby 1.8 和 1.9 中使用相同的代码处理字符串编码

javascript - MapReduce 函数 MongoDB NodeJs

javascript - 推迟搜索直至模板加载

ruby - 使用 ruby​​ 和 sinatra 为我的博客提供简单的搜索表单

ruby-on-rails - 2个用户之间的产品订单

mongodb - 在mongodb中按多个字段一起排序

MongoDB Chain 查询,伪事务

ruby - Sinatra,在哪里放置 require 语句