每个都是未定义的方法

时间:2017-05-24 04:05:26

标签: ruby-on-rails

我有一个show controller,可以从模型中获取记录(下面的代码)

  def show
    @protocol = Protocol.find(params[:id])
  end 

现在,我检查@protocol,它实际上正在返回一个对象:

enter image description here

我的观点名为show.html.erb,show.html.erb中的代码为:

<table id="test-table">

      <thead>
        <% @protocol.each do |key, value| %>
          <th><%= value %></th>
        <% end %>
      </thead>

</table>

基本上,在我看来,我想循环遍历@protocol哈希并输出每个值。但是我得到一个未定义的方法'each'错误,如下所示: enter image description here

为什么我收到此错误?我可以不循环哈希,还是返回对象而不是哈希?

1 个答案:

答案 0 :(得分:2)

协议不是哈希,它是Protocol模型的一个实例。你不能&#34;每个&#34;一条记录。如果要迭代属性及其值,请使用@protocol.attributes.each