辅助外键,为每个关联递增

时间:2017-03-24 21:33:26

标签: ruby-on-rails

我有两个型号

class Post < ActiveRecord::Base
    has_many :comments
end

class Comment < ActiveRecord::Base
    belongs_to :post
end

是否有一个外键会根据特定comments中的post的数量而增加(因此用户根据comment_id看不到评论数量)?

例如,每个帖子的评论应该从索引1开始:

Post.find(1).comments.first.relative_id # 1
Post.find(2).comments.first.relative_id # 1

这使得路线成为可能:

# The total number of comments is hidden because comment_id is not used
get 'post/:post_id/comments/:relative_id' => 'comments#show'

Example:
/post/1/comments/1 would refer to Comment.find(1)
/post/2/comments/1 would refer to Comment.find(2)

1 个答案:

答案 0 :(得分:0)

我建议你制作post/:post_id/comments/:comment_id形式的网址,以便它们明确无误。

你仍然可以在网址中使用递增数字,我会看一下类似acts_as_list gem(https://github.com/swanandp/acts_as_list

的内容

您可能仍希望在内部使用普通ID,但您可以在网址中使用position,只需确保它已在您的数据库中编入索引。