我试图显示一个多态关系列表,没有任何重复.
我有一个StoreViews表,其中包含一个名为viewable的多态字段(因此我的表中有一个viewable_id和viewable_type列).现在我想显示每个多态关系只显示一次的视图,没有重复.
@views = StoreView.
.distinct(:viewable_id)
.distinct(:viewable_type)
.order("created_at DESC")
.limit(10)
Run Code Online (Sandbox Code Playgroud)
因此,如果StoreView中存在两条具有相同可视关系的记录,则@views应仅返回最新的记录.然而,这种情况并非如此.
我在Rails 5.2项目中使用以下代码:
c = Country.where(name: "test").first_or_create
c.status = "Old"
c.save
Run Code Online (Sandbox Code Playgroud)
这行得通,但是,我只想在没有国家/地区的情况下更改状态(所以我只想插入国家/地区,而不要更新)。但是,我还需要在c以后的代码中使用。
我意识到我可以做一个if语句,但是我必须在代码中多次做类似的事情,而且似乎必须存在一个快捷方式。
我有两个时间列存储在 Postgresql 数据库中:open_time和close_time. 我试图找出忽略日期的当前时间是否在两个时间之间,忽略日期。
此代码比较日期和时间:
current_time = Time.now
if current_time.between?(store.open_time, store.close_time)
puts "IN BETWEEN"
end
Run Code Online (Sandbox Code Playgroud)
它不起作用,例如, whencurrent_time # => 2018-06-06 23:59:49 -0600和open_time # => 2000-01-01 22:59:00 UTC。
我如何让它不包括日期,而只是比较时间?