說我有一個派生自ActiveRecord的類。它有幾個字段,加上一個「id」字段。 「id」被創建,所以它的默認值是序列的「nextval」,所以每次保存新記錄時都會自動遞增。它是由做創建:如何更新Rails中的序列並獲取對象中的結果值?
CREATE SEQUENCE id_sequence;
ALTER TABLE my_table ALTER COLUMN id SET DEFAULT nextval('id_sequence');
所以,現在在Ruby中,我填充我的對象的字段,然後我 「救人!」它。現在我需要對對象做更多的工作,但「id」字段仍然設置爲零。 Ruby中沒有「load」函數可以讓我從數據庫中重新加載對象。儘管你會想到,「!」在ActiveRecord中並不意味着它會修改原始對象(如果Rails不遵循這些約定,那麼Ruby約定是什麼意思)。似乎你可以在原始對象內執行「self.find_by」。我認爲唯一能想到的就是在表格的某個定義消息字段上調用「find_by」(這幾乎不可能,因爲這是id的用途,但我沒有它!)並創建一個新對象,然後從中得到id。
必須有一些簡單的方法。
所以你要說'save!'不會引發錯誤?什麼'保存'返回? – devkaoru
我從來沒有聽說過「串行」欄目,它似乎並不像ActiveRecord的數據類型之一:http://stackoverflow.com/questions/17918117/rails-4-datatypes – Mike
好像答案至今爲拯救「打完電話後重裝」‘用’,這是至少比我以前做黑客越好。 – Mike