2013-05-09 86 views
0

下面是我得到未定义的局部变量或方法'讨论”为#<DiscussionsController:0x598de20>

NameError in DiscussionsController#destroy 

undefined local variable or method `discussion' for #<DiscussionsController:0x598de20> 

我创建了一个DiscussionsController

class DiscussionsController < ApplicationController 
    def destroy 
    @discussion = discussion.find(params[:id]) 

    if @discussion.present? 
     @discussion.destroy 
    end 

    redirect_to root_path 
    end 
end 

我试图错误信息允许用户删除自己的讨论。 下面是我使用使删除的观点:

<% if current_user?(discussion.user) %> 
    <%= link_to "delete", discussion, method: :delete, 
            confirm: "You sure?", 
            title: discussion.content %> 
<% end %> 

当我尝试,它进入http://localhost:3000/disc/7(7 = discussion_id)并显示错误。我routes.db的

部分

resources :discussions, :path => "disc" 

我该如何解决这个问题?顺便说一下,DiscussionssionsController是必要的吗?我只创造它来消灭。

Postcomments表在下面的评论的错误

create_table "postcomments", :force => true do |t| 
    t.text  "content" 
    t.integer "user_id" 
    t.integer "micropost_id" 
    t.timestamp "created_at",  :null => false 
    t.timestamp "updated_at",  :null => false 
    t.text  "comment_content" 
    end 

Postcomments模型

class Postcomment < ActiveRecord::Base 


    attr_accessible :comment_content 

    belongs_to :user 
    belongs_to :micropost 

    validates :comment_content, presence: true 
    validates :user_id, presence: true 
    validates :micropost_id, presence: true 

    default_scope order: 'postcomments.created_at ASC' 
end 
+0

显然你的'postcomments'表没有'discussion_id'列。但正如我所说,请提出另一个问题,因为这个新问题与原始问题无关。 – Mischa 2013-05-09 01:44:47

回答

0

discussion应与资本D.相反的:

@discussion = discussion.find(params[:id]) 

尝试:

@discussion = Discussion.find(params[:id]) 

这是一个你正试图调用方法的类,并且类总是以Ruby中的大写字母开头。

+0

您是否知道为什么当我尝试删除时发生此错误?我没有与讨论相关的postcomments,所以我想知道我需要在哪里解决这个问题? 'SQLite3 :: SQLException:no such column:postcomments.discussion_id:SELECT“postcomments”。* FROM“postcomments”WHERE“postcomments”。“discussion_id”= 7 ORDER BY postcomments.created_at ASC' – rts213 2013-05-09 01:30:01

+0

这似乎与您之前的问题完全无关。所以,不,不知道。这可能发生在你重定向到'root_path'时。请提出另一个问题并发布相关代码。 – Mischa 2013-05-09 01:36:14

相关问题