Добавление автоинкрементного столбца SNO в Rails Scaffolding? - PullRequest
0 голосов
/ 25 августа 2009

Есть ли способ, с помощью которого я могу создать столбец серийного номера (SNO) через леса в Rails, который увеличивается при добавлении записи, уменьшается при удалении записи и не может быть изменен вручную?

Ответы [ 2 ]

1 голос
/ 25 августа 2009

Неясно, существуют ли какие-либо отношения, но похоже, что counter_cache может подойти.

A Эпизод Railscast содержит примеры кода и видеоурок.

0 голосов
/ 25 августа 2009

Если вы хотите создать сводный столбец для модели, вам нужно будет применить эту логику к своим моделям. Для этого нет встроенного метода (например, стандартного поля автоинкремента), но его можно легко добавить:

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 
...