的路線不是唯一的ID我想有一個像在Rails的在博客中的Rails
http://mydomain.com/posts/28383/comments#21
這是28383th後的21日評論道。 21不是唯一的ID,但是28383,#21是唯一的。
我如何在Rails中做到這一點?我必須改變路線嗎?該模型? 我會很感激,如果你能指出我在正確的方向
感謝
的路線不是唯一的ID我想有一個像在Rails的在博客中的Rails
http://mydomain.com/posts/28383/comments#21
這是28383th後的21日評論道。 21不是唯一的ID,但是28383,#21是唯一的。
我如何在Rails中做到這一點?我必須改變路線嗎?該模型? 我會很感激,如果你能指出我在正確的方向
感謝
在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則用作跳轉到頁面右側的錨點。
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]]
獲取評論。
感謝羅恩,但我應該在哪裏說comment_id不是唯一的密鑰? (否則我將有巨大的評論ID) – Victor
我可以使用能夠有數字錨? – Victor
是的,你的確可以。 –