Rails自動爲像created_at和updated_at這樣的列插入值。我能否以這種方式配置導軌,以便更新更多的列。例如,我所有的表都有一個名爲user的列,保存當前用戶值,我可以在缺少任何數據庫更改的情況下插入用戶嗎?使用rails在表格中插入默認值
0
A
回答
2
你可以嘗試在你的模型中使用before_save函數,除非我誤解了這個問題。
before_save :defaults
def defaults
#some stuff to set your defaults
end
1
是的,你可以在模型中使用before_filter,例如,
before_update :set_value
def set_value
self.value = "hello"
end
0
您可以使用ActiveRecord回調在更改狀態時觸發邏輯,例如將對象保存到數據庫之前。 created_at和updated_at列在創建對象(before_create)或更新(before_save)時自動更新。您可以使用ActiveRecord :: Callbacks命名空間中定義的類方法定義自己的回調。一個例子是
# app/models/example.rb
class Example < ActiveRecord::Base
before_save :do_something
def do_something
self.value = value
end
end
如果你特別想記錄下創建,更新或刪除記錄的用戶,你可以節省一些工作和使用Userstamps Rails插件,自動記錄用戶。這個插件位於https://github.com/delynn/userstamp
# app/models/example.rb
class Example < ActiveRecord::Base
model_stamper
end
# app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
include Userstamp
end
您需要將userstamps列添加到每個要在其上記錄用戶行爲的模型。
上ActiveRecord的回調的更多信息可以在這裏找到:http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html
時間戳信息可以在這裏找到: ActiveRecord的時間戳:http://api.rubyonrails.org/classes/ActiveRecord/Timestamp.html
相關問題
- 1. 插入默認值
- 2. 插入默認值
- 3. 插入默認值
- 4. 插入空值時插入默認值
- 5. 在SQLite2中插入默認值
- 6. 在datetime列中插入默認值
- 7. 在MySQL中插入默認值+30天
- 8. 在「EditorForModel()」中插入默認值
- 9. 在列表中插入默認值以使其長度固定
- 10. 如何插入到表默認值
- 11. SQL插入默認值
- 12. 使用默認值創建表格
- 13. 使用小巧玲瓏插入到用默認值的表
- 14. 使用dbForge插入查詢不插入默認值
- 15. 在knex中使用子查詢插入默認值
- 16. 使用默認值FIREBIRD將空值插入到非空列中
- 17. 用默認值插入Mysql行
- 18. 的MySQL插入行只用默認值
- 19. MySQL從文件中插入默認值
- 20. 插入默認值的多個行插入表
- 21. 如何在SQL表中插入默認值?
- 22. 如何在一個表中插入多個默認值
- 23. 如何在請求== POST後保存/插入默認值到表格中?
- 24. Rails中create_table的默認值
- 25. MySQL:將新列插入到其他表的默認值表中
- 26. Rails i18n默認值
- 27. 如何使用python插入默認值的html格式文本輸入?
- 28. 如何使用sql-processor插入記錄時使用默認值
- 29. 使用變量在表單輸入中定義默認值
- 30. 使用默認值SQLAlchemy批量插入缺失值
在進一步閱讀,似乎要與所有的資源相關聯當前用戶。你爲什麼不把範圍內的所有資源放在current_user下面,然後你不需要使用類似上面的過濾器? – amaseuk