使用Rails 3.2.17。我在我的模型如下:在Rails模型中搜索相同的類
class Shop < ActiveRecord::Base
before_create :set_next_position
private
def set_next_position
self.position = self.class.where(country_id: country_id).
maximum(:position).to_i + 1
end
end
self
是Shop
對象。注意行self.class.where...
這相當於Shop.where...
。在這種情況下,我不知道最佳做法是什麼 - 使用Shop.where...
或self.class.where...
?這是代碼味道給我。
我會說'self.class.where'比類中的'Shop.where'更好。這樣,如果由於某種原因您想要重命名類,則無需在內部進行更改。 – Babar
@ollaollu它從一個回調'before_create'中調用。我需要在保存之前設置新對象的位置。 – Victor
注意到在評論 – ollaollu