我在网络开发方面相当新,我正在与Sinatra一起练习。我试图访问保存在数组中的每个哈希的每个元素。我google了一下,我没有找到一个明确的答案/理由,为什么我不能按照我这样做的方式做到这一点。你能帮帮我吗?感谢。
我的档案内容是什么:
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>
我得到的错误:
/ p中的NoMethodError 未定义的方法`bytesize&#39; for {&#34; jobId&#34; =&gt; 25347483,&#34; employerId&#34; =&gt; 382326}:Hash
答案 0 :(得分:1)
我收到了错误,因为我无法做到! 从:http://www.sinatrarb.com/intro.html
&#34;返回值 路由块的返回值至少确定传递给HTTP客户端的响应主体,或至少确定Rack堆栈中的下一个中间件。最常见的是,这是一个字符串,如上例所示。但其他价值观也被接受。
您可以返回任何有效的Rack响应,Rack body对象或HTTP状态代码的对象:
包含三个元素的数组:[status(Fixnum),headers(Hash),response body(响应#each)] 一个包含两个元素的数组:[status(Fixnum),响应体(响应#each)] 一个对象响应#each并将除字符串之外的任何内容传递给给定块 Fixnum代表状态代码&#34;