将时间列添加到 Devise 并在 Rails 4 中从控制器手动更新它
Add a Time column to Devise and have it updated manually from controller in Rails 4
我需要查看用户何时开始订阅。我需要在 Devise 生成的迁移创建的 users
table 中添加一个名为 subscription_started_time
的新列。
我可以轻松添加该列,但如何填充它?我显然不应该使用强参数,因为时间输入将直接从控制器添加,而不是通过表单。
当用户 creates/updates 一个帐户时,处理直接来自 Ruby 的输入的最佳方式是什么?
如果您想在创建 User
的 :subscription_started_time
时设置它,您可以使用 ActiveRecord
的挂钩之一 - before_create
。
让我们考虑一个例子:
class User < ActiveRecord::Base
# ...
before_create do
self.subscription_started_time = DateTime.new
end
end
请检查 documentation 以获得更多适用于您的 ActiveRecord
型号的挂钩。
希望对您有所帮助!
我需要查看用户何时开始订阅。我需要在 Devise 生成的迁移创建的 users
table 中添加一个名为 subscription_started_time
的新列。
我可以轻松添加该列,但如何填充它?我显然不应该使用强参数,因为时间输入将直接从控制器添加,而不是通过表单。
当用户 creates/updates 一个帐户时,处理直接来自 Ruby 的输入的最佳方式是什么?
如果您想在创建 User
的 :subscription_started_time
时设置它,您可以使用 ActiveRecord
的挂钩之一 - before_create
。
让我们考虑一个例子:
class User < ActiveRecord::Base
# ...
before_create do
self.subscription_started_time = DateTime.new
end
end
请检查 documentation 以获得更多适用于您的 ActiveRecord
型号的挂钩。
希望对您有所帮助!