ruby-on-rails - 使用 Postgres 按年份分组
问题描述
我希望仅在 created_at 日期字段中按年份分组。我正在使用 postgres,发现它与使用 Mysql 不同。
我希望仅显示年份并在搜索参数中使用它们。
我收到以下错误:missing attribute: created_at
搜索表格
<%= form_tag(page_path, method: :get) do %>
<%= select_tag :select_year, options_for_select(@years.map { |m| m.created_at.year }) %>
<%= submit_tag 'Search', name: nil %>
<% end %>
控制器(索引)
@trials = if params[:select_year]
Product.where('extract(year from created_at) = ?', "#{params[:select_year]}")
else
Product.where('extract(year from created_at) = ?', Time.now.year))
end
@years = Product.group('extract(year from created_at)').order('extract(year from created_at) DESC').select('extract(year from created_at)')
解决方案
您as
的选择中缺少一个,
.select('extract(year from created_at) AS created_at_year')
然后你可以打电话@years.map(&:created_at_year)
推荐阅读
- ubuntu - 注册 Twilio 电话号码时出现 ngrok 错误
- python - 如何绘制 pd.crosstab() 表?
- qt - 我可以保留传递给 QJSEngine 的 QObject 的所有权吗?
- html - 为什么当行上没有更多空间时浮动元素被推到容器外面而不是被推到第二行?
- python - Hogwild 的 PyTorch 多处理错误
- reactjs - REACT JS中的Array.find函数无法读取未定义的属性
- c++ - 从数据文件中读取后出现分段错误
- c++ - 带有字符串和 c 字符串的 C++ 中的临时实例
- docker - docker-compose build 报错构建路径Testdriven.io教程
- ios - 如何通过触摸 UIView 转到视图控制器?