2012-07-08 68 views
1

当我去删除帖子我不断收到写着未定义的方法'破坏“的‘技术’:字符串

未定义的方法`摧毁一个错误”的‘技术’:字符串

帖子中的“tech”部分因我试图删除的帖子的标签而异。我不确定问题是什么。如果与此有任何关系,我正在使用acts_as_taggable_on

这是我破坏方法在我的职位控制器:

def destroy 
    @post = Post.find(params[:id]) 
    @post.destroy 

    respond_to do |format| 
     format.html { redirect_to(root_path) } 
     format.xml { head :ok } 
     format.json { head :ok } 
    end 
    end 

删除按钮在我的帖子显示:

<%= button_to 'Delete', @post, :method => :delete, :confirm => "Are you sure?" %> 

标签都保存在数据库中的字符串。

回答

0

不可能给你一个解决你的问题的答案,因为你没有给出任何代码也没有例子。

尽管如此,这个错误意味着您要对字符串调用destroy方法,而Ruby中的字符串没有定义的destroy方法。

检查你在哪里调用销毁,因为它似乎是你在一些函数返回一个字符串(在你的情况下的标签名称)。您必须在作为Tag类的实例的对象上执行此操作。

+0

对不起,我的问题最初不是特定的,我希望这是更多的问题与我使用的宝石可以回答没有代码,而不是我的代码中的错误,因为我已经在其他代码没有宝石的应用程序并没有问题。至于调用摧毁一个实例的对象,你能告诉我一个例子。我还是比较新的编程,所以我会很感激这个帮助。谢谢。 – 2012-07-08 08:18:16

+0

当然,如果你有一个这样的对象:tag = Tag.new,那么你可以调用它的方法,例如:tag.getName,在这种情况下它可以返回标签的名字,这是一个字符串。所以如果你做了这样的事情:tag.getName.destroy,你会试图摧毁返回的字符串,而不是标签本身。所以你必须确保销毁对象:tag.destroy – 2012-07-08 09:23:10

相关问题