我在browse.html.erb上有一個Ransack搜索表單,它按標題和類別過濾文章。當我第一次進入瀏覽頁面而沒有做任何搜索時,我想要一個所有類別的列表,其中包含屬於要在側邊欄上呈現的類別的文章的計數。提交搜索後,我希望根據搜索結果更新類別和文章數量列表。Ruby on rails:統計過濾後每個類別的記錄數
我無法理解爲什麼會發生錯誤:
undefined method `where' for #<Article:0x007f1e60f193e0>
browse.html.erb
<% @categories.each do |category| %>
<p><%= link_to category.name, browse_articles_path(category: category.name) %></p>
<p><%= category.articles.select{|article| article.where(title == params[:q][:title_cont])}.count %></p>
<% end %>
articles_controller.rb
def browse
@q = Article.ransack(params[:q])
@articles = @q.result.includes(:categories, :users)
if params[:q][:title_cont] == present?
@categories = Category.joins(:articles).where('article.title LIKE ?', params[:q][:title_cont]).uniq
else
@categories = Category.includes(:articles).order('name ASC').all
end
end
您確定@diana正在查找匹配的子字符串嗎?如果是這樣的話,他將不得不使用通配符。 – Cyzanfar
我不能確定,但是ransack title_cont是通配符匹配。如果她正在尋找完全匹配,她會用title_eq去。 PS:我不確定,但我認爲戴安娜是一個女孩:) – AntonTkachov