下面是我得到未定义的局部变量或方法'讨论”为#<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
显然你的'postcomments'表没有'discussion_id'列。但正如我所说,请提出另一个问题,因为这个新问题与原始问题无关。 – Mischa 2013-05-09 01:44:47