【问题标题】:How can I access elements of an array of hashes in a view? (Sinatra)如何访问视图中散列数组的元素? (西纳特拉)
【发布时间】:2014-08-11 06:20:57
【问题描述】:

我是 Web 开发的新手,我正在使用 Sinatra 进行练习。我正在尝试访问保存在数组中的每个哈希的每个元素。我四处搜索,但没有找到明确的答案/原因来解释为什么我不能以我的方式做到这一点。你能帮我吗?谢谢。

我的文件里面有什么:

app.rb

 get '/' do
   @jobs = [{"jobId"=>25347483, "employerId"=>382326},
            {"jobId"=>34543, "employerId"=>3233},
            {"jobId"=>90009, "employerId"=>94949},
            {"jobId"=>5005004, "employerId"=>95959}
           ]
 end

index.erb

<body>
  <% @jobs.each do |job| %>
  <p><%= job['jobId'] %></p>
  <% end %>
</body>

我得到的错误:

NoMethodError 在 / {"jobId"=>25347483, "employerId"=>382326}:Hash

的未定义方法 `bytesize'

【问题讨论】:

    标签: ruby sinatra


    【解决方案1】:

    我遇到了一个错误,因为我做不到! 来自:http://www.sinatrarb.com/intro.html

    "返回值 路由块的返回值至少决定了传递给 HTTP 客户端的响应主体,或者至少决定了 Rack 堆栈中的下一个中间件。最常见的是,这是一个字符串,如上面的示例所示。但也接受其他值。

    您可以返回任何可以是有效 Rack 响应、Rack 主体对象或 HTTP 状态代码的对象:

    一个包含三个元素的数组:[status (Fixnum), headers (Hash), response body (responds to #each)] 一个包含两个元素的数组:[status (Fixnum), response body (responds to #each)] 响应 #each 并且只将字符串传递给给定块的对象 一个表示状态码的 Fixnum"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-15
      • 2015-08-20
      • 1970-01-01
      • 2010-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多