Ruby Sinatra,从数据映射程序传递到Haml中选择

Ruby Sinatra,从数据映射程序传递到Haml中选择,ruby,sinatra,haml,datamapper,Ruby,Sinatra,Haml,Datamapper,我正在做一个简短的练习,浓缩如下。我面临的问题是,我能够通过所有票的选择,但不能通过一张票的选择。At/列出所有票证没有问题,对于我得到的票证,在端点处: NoMethodError at /pi2l9ulnw undefined method `slug' for #<Enumerable::Enumerator:0x7f04eb043b88> 改变 @@ ticket %div{:class => "ticket"} = @ticket.slug 到 它是有效的也许

我正在做一个简短的练习,浓缩如下。我面临的问题是,我能够通过所有票的选择,但不能通过一张票的选择。At/列出所有票证没有问题,对于我得到的票证,在端点处:

NoMethodError at /pi2l9ulnw
undefined method `slug' for #<Enumerable::Enumerator:0x7f04eb043b88>
改变

@@ ticket
%div{:class => "ticket"}
  = @ticket.slug


它是有效的

也许问题在于模型的构建和DM的查询,网站上有基本信息,但进一步寻找信息是可怕的,可以说至少有几页的rdoc类和方法没有指向我所处的基本级别

Ticket.getparams[:slug]给出了某种类型的空错误-查询不提取任何内容,可能需要将“slug”转换为某种类型的键?

get`/:slug'do @票证=票证。第一个:slug=>params[:slug] haml“%h1=@ticket.slug” 终止
变体呈现得非常完美,因此部分问题可能是使用DM进行不正确的查询。答案主要是datamapper查询

非常有用,事后发现:


这个问题的结尾,可能对其他人有用

有点有用,但不是-我在所有端点都只有一张罚单,第一次选择新的问题。这真的很烦人,我没有正确地传递或解包@ticket。嘿,你有没有可能标记出你的哪个答案是正确的?我很好奇是什么修复了它:
@@ ticket
%div{:class => "ticket"}
  = @ticket.slug
@@ ticket
%div{:class => "ticket"}
- @ticket.each do |ticket|
 %h1
  = ticket.slug