现在,我正在设置我的嵌套路由 但在这种情况下,
尽管事实上只有2条记录属于沃尔玛商店
该ID将显示为'3'
如何将此ID作为计数样式?我应该准备另一个专栏吗?
resources :communities, :path => "shop", do resources :community_topics, :path => "topic", :as => :'topic' end
答案 0 :(得分:1)
如果网址中的数字是记录的id
,真的是否重要?如果这对您很重要,您可以制作一个与您的商店slu“”walmart“,”bestbuy“等类似的”slug“。您必须在主题表中创建一个新列并使用before_create
过滤器增加该值。像这样:
class Topic
before_validation :increment_slug, :on :create
validates_uniqueness_of :slug, scope: :shop_id
private
def increment_slug
self.slug = Topic.where("shop_id = ?", shop_id).order("slug DESC").limit(1).slug + 1
end
end
确保'slug'在这里是一个数字字段,以便+
和排序正常工作。