我有一个模型Story
,为此我要添加一个pinned_at
属性。我希望用户能够选择是否需要将故事固定在索引页面的顶部,但不能设置日期时间值,因为设置时它应该始终是当前日期时间。
我的想法是
= f.check_box :pinned_at,value: DateTime.now
但是该值似乎没有设置。谁有想法?首先,它不是简单的布尔属性的原因是我想根据故事是否固定以及故事的创建日期对故事进行排序。我认为Rails并不是按布尔值排序的好方法吗?
我有一个模型Story
,为此我要添加一个pinned_at
属性。我希望用户能够选择是否需要将故事固定在索引页面的顶部,但不能设置日期时间值,因为设置时它应该始终是当前日期时间。
我的想法是
= f.check_box :pinned_at,value: DateTime.now
但是该值似乎没有设置。谁有想法?首先,它不是简单的布尔属性的原因是我想根据故事是否固定以及故事的创建日期对故事进行排序。我认为Rails并不是按布尔值排序的好方法吗?
只需将datetime列与单独的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