2016-11-18 1 views
1

왜이 오류가 발생하는지 잘 모르겠습니다. 오류가 있어야하지만, 불행히도 지금은 찾을 수 없습니다.NoMethodError in 핀 # index, 정의되지 않은 메소드`stringify_keys

Index.html.erb : 내 콘솔

<div id="pins" class="transitions-enabled"> 
    <% @pins.each do |pin| %> 
    <div class="box panel panel-default"> 
     <%= link_to image_tag(pin.image.url(:medium)), pin %> 
     <div class="panel-body"> 
     <p><%= pin.description %></p> 
     <p><strong><%= pin.user.email if pin.user %></strong><p> 

     <% if pin.user == current_user %> 
      <div class="actions"> 
      <%= link_to edit_pin_path(pin) do %> 
      <span class="glyphicon glyphicon-edit"></span> 
      Edit 
      <% end %> 
      <%= link_to 'Delete', pin, method: :delete, data: { confirm: 'Are you sure?' } do %> 
      <span class="glyphicon glyphicon-trash"></span> 
      Delete 
      <% end %> 
      </div> 
     <% end %> 
     </div> 
    </div> 
    <% end %> 
</div> 

, 오류 : 나는`

<%= link_to 'Delete', pin, method: :delete, data: { confirm: 'Are you sure?' } do %>` 

<%= link_to pin, method: :delete, data: { confirm: 'Are you sure?' } do %> 
를 편집하는 경우

ActionView::Template::Error (undefined method `stringify_keys' for #<Pin:0x007f568d39a428>): 
    12:    <span class="glyphicon glyphicon-edit"></span> 
    13:    Edit 
    14:    <% end %> 
    15:    <%= link_to 'Delete', pin, method: :delete, data: { confirm: 'Are you sure?' } do %> 
    16:    <span class="glyphicon glyphicon-trash"></span> 
    17:    Delete 
    18:    <% end %> 

것 같습니다

페이지가 작동하지만 페이지가로드되지만 사용자가 로그인 할 때 '핀'에 '삭제'옵션을로드하지 않은 것과 같은 다른 문제가 발생합니다. 로그인 :/

+0

컨트롤러에 오류가 있습니까? 당신이 받고있는 전체 오류를 붙여 줄 수 있습니까? –

+0

[NoMethodError in Car # index] 가능한 복제본 (http://stackoverflow.com/questions/6034106/nomethoderror-in-carindex) –

+0

@Benjamins 디버깅 도움말을 찾는 데 필요한 질문 ("이 코드가 작동하지 않는 이유는 무엇입니까?") 원하는 동작, 특정 문제 또는 오류 및 질문 자체에서이를 재현하는 데 필요한 가장 짧은 코드를 포함하십시오. 분명한 문제 성명이없는 질문은 다른 독자에게 유용하지 않습니다. –

답변

0

나중에 블록을 사용하여 link_to를 작성할 때 링크의 텍스트 콘텐츠가 필요하지 않습니다. 코드에서

<%= link_to pin, method: :delete, data: { confirm: 'Are you sure?' } do %> 
    <span class="glyphicon glyphicon-trash"></span> 
    Delete 
<% end %> 

사람 만 게재하여 삭제 버튼에 대해서는

을 로그인되지 않은 해시 때 옵션의 일환으로 핀을 구문 분석하려고 link_to 'delete', pin, ... do 전달, 내 추측 pin.user은 아무도 로그인하지 않은 경우와 일치하는 nil입니다. 따라서 해당 조건을 업데이트하십시오. if current_user.present? && pin.user == current_user

관련 문제