Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 每年使用Postgres分组_Ruby On Rails_Postgresql_Ruby On Rails 5 - Fatal编程技术网

Ruby on rails 每年使用Postgres分组

Ruby on rails 每年使用Postgres分组,ruby-on-rails,postgresql,ruby-on-rails-5,Ruby On Rails,Postgresql,Ruby On Rails 5,我只希望在created_at date字段中按年份分组。我正在使用postgres,发现它与使用Mysql不同 我希望只显示年份,并在搜索参数中使用它们 我得到以下错误:缺少属性:在 查册表格 您的选择中缺少as .select('extract(year from created_at) AS created_at_year') 然后你可以调用@years.map&:created_at_year你的选择中缺少as .select('extract(year from created_at

我只希望在created_at date字段中按年份分组。我正在使用postgres,发现它与使用Mysql不同

我希望只显示年份,并在搜索参数中使用它们

我得到以下错误:缺少属性:在

查册表格

您的选择中缺少as

.select('extract(year from created_at) AS created_at_year')
然后你可以调用@years.map&:created_at_year

你的选择中缺少as

.select('extract(year from created_at) AS created_at_year')
然后您可以调用@years.map&:created_at_year

ProductIndex

def index
  #.....
  #Performance point of view
  @years_arrays = Product.order('extract(year from created_at) DESC').pluck('DISTINCT extract(year from created_at)')
end
查看搜索表单

<%= form_tag(page_path, method: :get) do %>
  <%= select_tag :select_year, options_for_select(@years_arrays) %>
  <%= submit_tag 'Search', name: nil %>
<% end %>
产品索引

def index
  #.....
  #Performance point of view
  @years_arrays = Product.order('extract(year from created_at) DESC').pluck('DISTINCT extract(year from created_at)')
end
查看搜索表单

<%= form_tag(page_path, method: :get) do %>
  <%= select_tag :select_year, options_for_select(@years_arrays) %>
  <%= submit_tag 'Search', name: nil %>
<% end %>

@DollarChills@years.map将迭代每个元素,这不是有点难看的代码吗?为什么不试试这个@years\u arrays=Product。订购'extractyear from created\u at DESC'。从创建的位置删除'extractyear from created\u at',这样也会提高性能。@DollarChills@years.map将迭代每个元素,这不是有点难看的代码吗,你为什么不试试这个@years\u arrays=Product。订购'extractyear from created_at DESC'。删除'extractyear from created_at',这样也会提高性能。我想你可能还想添加不同的年度值。distinct over Pull会为Arrayerror带来未定义的方法'distinct'。我编辑了答案。在Pulk中添加了DISTINCT我想您可能还想添加DISTINCT全年值DISTINCT over Pulk将为Arrayerror生成未定义的方法“DISTINCT”。我对答案进行了编辑。添加了清晰的文字