【发布时间】:2016-05-07 11:56:01
【问题描述】:
我有 3 个控制器/模型
routes.rb:
resources :boards do
resources :posts do
resources :replies
目前我有一个单独的列用于 ID :pid,并为每个帖子/回复分配一个有罪的 PID。
在models/reply.rb:
class Post < ActiveRecord::Base
belongs_to :board
has_many :replies, dependent: :destroy
has_one :board
accepts_nested_attributes_for :replies
include FriendlyId
friendly_id :pid, use: :slugged
after_create :set_pid
def set_pid
post_max = Post.maximum(:pid)
reply_max = Reply.maximum(:pid)
if post_max.to_i < reply_max.to_i
self.update_attributes(:pid => reply_max.to_i + 1)
else
self.update_attributes(:pid => post_max.to_i + 1)
end
end
end
这可行,但前提是只有一块板。如何区分每个板的 PID?
【问题讨论】:
标签: ruby-on-rails ruby