使用布尔输入更新日期时间属性
Update a datetime attribute using a boolean input
我有一个模型 Story
,我要为其添加 pinned_at
属性。我希望用户能够 select 如果故事需要固定到索引页面的顶部,但不能设置日期时间值,因为在设置时它应该始终是当前日期时间。
我的想法是
= f.check_box :pinned_at, value: DateTime.now
但是这个值好像没有设置。有人有想法么?首先,它不是一个简单的布尔属性的原因是我想根据故事是否固定和创建日期对故事进行排序。我认为 rails 没有按布尔值排序的好方法?
只需将日期时间列与单独的 setter/getter:
一起使用
class Story < ApplicationRecord
def pinned
pinned_at.present?
end
alias_method :pinned?, :pinned
def pinned=(value)
if value
self.pinned_at = Time.current unless pinned?
else
self.pinned_at = nil
end
end
end
= f.check_box :pinned
我有一个模型 Story
,我要为其添加 pinned_at
属性。我希望用户能够 select 如果故事需要固定到索引页面的顶部,但不能设置日期时间值,因为在设置时它应该始终是当前日期时间。
我的想法是
= f.check_box :pinned_at, value: DateTime.now
但是这个值好像没有设置。有人有想法么?首先,它不是一个简单的布尔属性的原因是我想根据故事是否固定和创建日期对故事进行排序。我认为 rails 没有按布尔值排序的好方法?
只需将日期时间列与单独的 setter/getter:
一起使用class Story < ApplicationRecord
def pinned
pinned_at.present?
end
alias_method :pinned?, :pinned
def pinned=(value)
if value
self.pinned_at = Time.current unless pinned?
else
self.pinned_at = nil
end
end
end
= f.check_box :pinned