我有一个show controller,可以从模型中获取记录(下面的代码)
def show
@protocol = Protocol.find(params[:id])
end
现在,我检查@protocol,它实际上正在返回一个对象:
我的观点名为show.html.erb,show.html.erb中的代码为:
<table id="test-table">
<thead>
<% @protocol.each do |key, value| %>
<th><%= value %></th>
<% end %>
</thead>
</table>
基本上,在我看来,我想循环遍历@protocol哈希并输出每个值。但是我得到一个未定义的方法'each'错误,如下所示:
为什么我收到此错误?我可以不循环哈希,还是返回对象而不是哈希?
答案 0 :(得分:2)
协议不是哈希,它是Protocol
模型的一个实例。你不能&#34;每个&#34;一条记录。如果要迭代属性及其值,请使用@protocol.attributes.each
。