0
我在我的Author
模型中有first_name
和last_name
字段。有時候我需要輸出全名,所以我想到了一個命名範圍:full_name
。導軌名爲範圍合併字段全名
我想:
scope :full_name, lambda {"#{first_name} #{last_name}"}
但是當我打電話.full_name
一個作者的情況下,我得到一個未定義的錯誤消息。怎麼來的?
我在我的Author
模型中有first_name
和last_name
字段。有時候我需要輸出全名,所以我想到了一個命名範圍:full_name
。導軌名爲範圍合併字段全名
我想:
scope :full_name, lambda {"#{first_name} #{last_name}"}
但是當我打電話.full_name
一個作者的情況下,我得到一個未定義的錯誤消息。怎麼來的?
範圍是使用上的關係,建立SQL查詢,例如:
scope :newest, -> { order('created_at DESC').limit(10) }
Author.newest
# => returns relation of author records in `created_at DESC` order and limited to 10
相反,你需要實例方法,這就是所謂的實例:
def full_name
"#{first_name} #{last_name}"
end
author = Author.new(first_name: 'Killer', last_name: 'Pixler')
author.full_name
# => "Killer Pixler"
感謝這個作品很好 – Killerpixler
我們假設我想驗證模型中full_name的唯一性。我怎麼做? 'validates_uniqueness_of:full_name'不起作用。一些用戶將具有相同的名字或姓氏,但全名應該是唯一的 – Killerpixler
您可以這樣做:'validates_uniqueness_of:first_name,scope::last_name'。 –