假設我有一個充滿顏色值(如「#EE3AA」)的mysql表格。我有一個模型,它有一個顏色屬性,這是強制性的(應該驗證),但不一定需要由用戶輸入。如果用戶留空,我希望它自動使用從另一個表中選擇的隨機值進行填充,但默認情況下並不總是相同的值。如何獲得MySQL/Rails中列的隨機默認值
我想,也許,我可以使用遷移做到這一點,所以它是這樣的:
... :default => "values of the color column of the Colors table".to_a.sample
我的想法可能不正確/法律在Ruby中的條款。在遷移文件中看到:default選項後,我認爲每次創建模型時都會運行遷移文件。但讀米哈伊爾的評論,這可能並非如此。但無論如何,當用戶沒有提供任何值時,如何從另一個表中獲得一個隨機值?
這是不是很清楚你在問什麼。將數據提取到遷移文件中意味着什麼? –
在我看來最好將這個邏輯移入模型鉤子(before_save)中,它會更易於維護和測試。 –
對不起,這個問題的模糊性和遲到的回報。我編輯了這個問題。 – barerd