Как перечислить все статьи, относящиеся к определенной категории? - PullRequest
0 голосов
/ 20 марта 2019

В моем приложении RoR есть проблема с перечислением всех элементов определенной категории.Вот 2 модели:

class Article < ApplicationRecord
  belongs_to :category

and 

class Category < ApplicationRecord
  has_many :articles
end

и мой метод управления категориями:

  def show
    @articles = @category.articles
    @category = Category.find(params[:id])
  end

В дБ у меня есть отношение между категориями и статьями:

create_table "articles", force: :cascade do |t|
    t.string "title"
    t.text "text"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string "category_id"
  end

  create_table "categories", force: :cascade do |t|
    t.string "name"
    t.text "desc"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

И вНа моей странице просмотра индекса статей есть код, в котором по названию ссылки ("Категория") я хочу показать все статьи определенной категории

  <td>
    <% if article.category %>
      <%= link_to article.category.name, category_path %>
    <% end %>
  </td>

Но я получаю сообщение об ошибке

No route matches {:action=>"show", :controller=>"categories"}, missing required keys: [:id]

1 Ответ

0 голосов
/ 20 марта 2019

Вы должны предоставить id или category объект, который отвечает на метод id, чтобы сгенерировать правильную ссылку:

<%= link_to article.category.name, category_path(article.category) %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...