2016-06-15 7 views
0

私は1つのプロジェクトがあり、ajaxを使ってリストからプロジェクトを破壊しようとしています。アイテムを破棄する際にエラーが発生する

class ProjectsController < ApplicationController 
. 
. 
. 
def destroy 
    @project.destroy 
    respond_to do |format| 
     format.js 
    end 
    end 

end 

destroy.js

<h1>Listing Projects</h1> 

<div id="all_project"> 
    <%= render 'projects/all_projects'%> 
</div> 

index.html.erb

$('#all_projects').html("<%= escape_javascript render(:partial => 'projects/all_projects') %>"); 

all_projects.html.erb

<table> 
    <thead> 
    <tr> 
     <th>Name</th> 
     <th>Team size</th> 
     <th colspan="3"></th> 
    </tr> 
    </thead> 

    <tbody> 
    <% @projects.each do |project| %> 
     <tr> 
     <td><%= project.name %></td> 
     <td><%= link_to 'Show', project %></td> 
     <td><%= link_to 'Edit', edit_project_path(project) %></td> 
     <td><%= link_to 'Destroy', project, method: :delete, data: { confirm: 'Are you sure?' } ,:remote=>true%></td> 
     </tr> 
    <% end %> 
    </tbody> 
</table> 

私はすべてのプロジェクトにその作業をロードしようとすると、良い。 しかし、私がプロジェクトを破壊すると、以下のようなサーバー側でエラーが出るでしょう。

ActionView::Template::Error (undefined method `each' for nil:NilClass): 
    9: </thead> 
    10: 
    11: <tbody> 
    12:  <% @projects.each do |project| %> 
    13:  <tr> 
    14:   <td><%= project.team_size %></td> 
    app/views/projects/_all_projects.html.erb:12:in `_app_views_projects__all_projects_html_erb___3489379756657223366_70218666904220' 

私が逃したものは、私を見つけるのを助けてください。 ありがとう

答えて

0

このエラーはオブジェクトが見つからないためです@project詳細。

私が@projects = Project.allを破壊方法に入れたとき、このエラーはなくなり、機能は正常に動作しています。

関連する問題