0

有没有一种方法可以通过 Rails 中的脚手架创建序列号 (SNO) 列,该列在添加记录时增加,在删除记录时减少并且不能手动修改?

4

2 回答 2

1

目前尚不清楚是否涉及任何关系,但听起来 counter_cache 可能是一个不错的选择。

Railscast 剧集提供了代码示例和视频教程。

于 2009-08-25T14:13:42.760 回答
0

如果要在模型上创建摘要列,则需要将此逻辑放入模型中。没有内置方法(如标准的自动增量字段),但可以轻松添加:

class Parent << ActiveRecord::Base 
    # Contains a field: summary_field
end 


class Child << ActiveRecord::Base

   after_save => :increment_summary
   before_destroy => :decrement_summary

   def increment_summary
        Parent.find(self.id).summary_field.increment
   end 

   def decrement_summary
        Parent.find(self.id).summary_field.decrement
   end 

end 
于 2009-08-25T14:04:07.857 回答