Ruby on rails 被ActiveRecord控制器错误难倒

Ruby on rails 被ActiveRecord控制器错误难倒,ruby-on-rails,activerecord,controller,Ruby On Rails,Activerecord,Controller,我正在做一个留言板应用程序。用户可以制作帖子,每个帖子都需要一个标签。用户可以对帖子发表评论。很简单。我一直在破解它,但却犯了一个无法解释的错误。我发了一篇帖子,邮件索引显示了包括最新帖子在内的帖子列表。每个帖子的标题都链接到消息#显示视图(这里没有什么特别的)和消息#索引上的其他24篇帖子,可以单击它们来访问相关的消息#显示。但这不是最近的一次。当我访问违规帖子的消息“show”时,我发现以下错误: Couldn't find Tag with ID=131 ... /usr/lib/ru

我正在做一个留言板应用程序。用户可以制作帖子,每个帖子都需要一个标签。用户可以对帖子发表评论。很简单。我一直在破解它,但却犯了一个无法解释的错误。我发了一篇帖子,邮件索引显示了包括最新帖子在内的帖子列表。每个帖子的标题都链接到消息#显示视图(这里没有什么特别的)和消息#索引上的其他24篇帖子,可以单击它们来访问相关的消息#显示。但这不是最近的一次。当我访问违规帖子的消息“show”时,我发现以下错误:

Couldn't find Tag with ID=131

...

/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/base.rb:1586:in `find_one'
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/base.rb:1569:in `find_from_ids'
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/base.rb:616:in `find'
/home/vvlist/website/app/controllers/messages_controller.rb:20:in `show'
消息\u controller.rb:20:

@tag = Tag.find(params[:id])

我真的不明白这里发生了什么。有人能启发我吗?我会发布任何其他需要的代码。感谢您阅读我的问题。

问题是您正在使用消息id查找标记。在
消息中,show
action
params[:id]
消息
模型的id,而不是标记

假设
标记
消息
的关联,例如
有一个:标记
有多个:标记
,则可以使用以下方法获得消息标记:

@message = Message.find(params[:id])
@tag = @message.tag # has_one


在使用dbms进行检查时,您能否确认id为131的标记确实存在?第一个代码示例解决了我的问题。非常感谢你,bjg。
@tags = @message.tags # has_many