0
chats
架構:上應用屬性驗證當與相同名稱的功能存在
create_table "chats", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
t.integer "chat_type", limit: 2, null: false
t.text "message", limit: 65535
t.text "attachment_url", limit: 65535
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
chat.rb
:
class Chat < ApplicationRecord
TYPES = %w(text callback emergency charge)
validates :chat_type, :inclusion => { :in => 0...Chat::TYPES.size}
def chat_type
Chat::TYPES[read_attribute(:chat_type)]
end
end
的chat_type
屬性是在數據庫中的一個整數。所以我使用TYPES
常量和chat_type
函數(同名易於使用)將它映射到其相應的字符串值。
現在,當我嘗試驗證chat_type
它不起作用。事實上,它不允許我分配任何值。可以是0,1,2,3或'text','emergency'等。
我試着將函數名改爲type
,它工作的很完美。
甚至可以使用相同的函數名稱嗎?或者我必須改變它到別的東西?