2010-03-25 100 views

回答

2

config/routes.rb,你要正確對待信息和評論,資源:

map.resources :posts do |post| 
    post.resources :comments 
end 

這允許您使用post_comments_path(@post),變成/posts/28383/comments

接下來,在列出帖子評論的視圖中,爲每個評論添加一個HTML id屬性。例如:

<div id="comment-<%= comment.id %>"> 
    <%= comment.body %> 
</div> 

注意,HTML id屬性前綴comment-,因爲它must begin with an alphabetic character

然後,您可以直接鏈接到這樣的評論:

<%= link_to 'Comment permalink', 
      post_comments_path(@post, :anchor => 'comment-' + @comment.id) %> 

注意,文章ID和評論ID被用於不同的東西:帖子ID被用來生成URL的基礎上,而註釋ID則用作跳轉到頁面右側的錨點。

+0

感謝羅恩,但我應該在哪裏說comment_id不是唯一的密鑰? (否則我將有巨大的評論ID) – Victor

+0

是的,你的確可以。 –

0

Ron DeVera的解決方案很好。另一方面,您可能有興趣只顯示一條評論。

你可以用手像這樣的東西在routes.rb中

map.connect 'posts/:id#:comment_id', :controller=> 'comments', :action=>'show_comment' 

,然後在你的控制器方法show_comment你可以通過params[:comment_id]訪問參數做到這一點。

此解決方案的其餘部分將像這樣手動前進,其中包括從郵政post.comments[params[:comment_id]]獲取評論。