2010-07-31 6 views
0

메시지 보드 응용 프로그램을 만들고 있습니다. 사용자는 게시물을 만들 수 있으며 각 게시물에는 태그가 필요합니다. 사용자는 게시물에 댓글을 달 수 있습니다. 아주 간단합니다. 나는 그것을 해킹하고있어 설명 할 수없는 오류가있다. 나는 게시물을 만들었고, 메시지 # 색인은 최신 게시물을 포함하여 게시물 목록을 보여줍니다. 각 게시물의 제목은 메시지 #보기 (여기서는 특별한 것은 없음)로 연결되고 메시지 # 색인에있는 다른 24 개의 게시물을 클릭하면 관련 메시지 # show를 방문 할 수 있습니다. 그러나 최근의 것은 아닙니다. 나는 문제가되는 게시물의 메시지 # 쇼를 방문 할 때 다음과 같은 오류가 발생합니다 :ActiveRecord 컨트롤러 오류로 엉망입니다

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' 

messages_controller.rb : 20 :

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

정말 여기에서 무슨 일이 일어나고 있는지 이해가 안 돼요. 누군가가 나를 계몽 할 수 있습니까? 다른 필요한 코드를 게시 할 것입니다. 제 질문을 읽어 주셔서 감사합니다.

+1

당신이 확인할 수있는 ID (131)와 태그 dbms로 확인할 때 실제로 존재합니까? – mark

+0

존재하지 않습니다. – BasicObject

답변

1

문제는 메시지 ID를 사용하여 태그를 찾고 있다는 것입니다. messages#show 작업에서 params[:id]Message 모델의 ID이며 태그는 아닙니다. Tag 다음 사용으로 메시지 태그를 얻을 수 있습니다 Messagehas_one :tag 또는 has_many :tags의 결합이라고 가정

:

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

또는

@tags = @message.tags # has_many 
+0

첫 번째 코드 예제가 내 문제를 해결했습니다. 대단히 감사합니다. – BasicObject

관련 문제