Показывать ВСЕ объявления с определенной категорией, ничего не возвращая - Rails 5 - PullRequest
0 голосов
/ 16 мая 2019

Я использую рельсы (5.2.3) и пытаюсь показать все объявления, отмеченные определенной категорией, но у меня есть пустой индекс

show.html.erb (category_view)

<% @category.ads.each do |ad| %>
<%= ad.category.try(:label) %>
<%= ad.title %>
<%= ad.user.first_name %>
<%= ad.publishing_at.strftime("%Y-%m-%d") %>
<%= ad.location %>
<%= ad.price %>
<%= ad.description %>
<% end %>

Category.rb

class Category < ApplicationRecord
  has_many :ads
  belongs_to :categorytype
end

Ad.rb

class Ad < ApplicationRecord
  belongs_to :user
belongs_to :category
end

Categories_controller.rb

class CategoriesController < ApplicationController

  def show

  @category = Category.find(params[:id])
  @ads = @category.ads.published.paginate(page: params[:page], per_page: 5)
end

Какие-нибудь решения?

1 Ответ

0 голосов
/ 16 мая 2019

заменить

@ads = @category.ads.published.paginate(page: params[:page], per_page: 5)

на

@ads = @category.ads&.published&.paginate(page: params[:page], per_page: 5)

и в поле зрения

<% @ads.each do |ad| %>
  <%= ad.category.try(:label) %>
  <%= ad.title %>
   ....
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...