--Listen Sie die Inhalte auf, die jeder von Active Hash erstellten Kategorie zugeordnet sind
Voraussetzung ist, dass die Installation von Active Hash und die Einstellungen rund um das Modell / die Datenbank abgeschlossen sind.
Da das Item-Modell category_id hat, legen Sie das Routing wie folgt fest
routes.rb
get '/items/category/:id', to: "items#category"
Machen Sie einen Link.
html.erb
link_to 'hoge', '/items/category/1'
link_to 'fuga', '/items/category/2'
link_to 'piyo', '/items/category/3'
Das Kategoriemodell ist übrigens so eingestellt
models/category.rb
class Category < ActiveHash::Base
self.data = [
{ id: 1, name: 'hoge' },
{ id: 2, name: 'fuga' },
{ id: 3, name: 'piyo' }
]
end
Kategorie Definiert eine Aktion.
items_controller.rb
def category
@item = Item.find_by(category_id: params[:id])
@items = Item.where(category_id: params[:id]).order('created_at DESC')
end
@Item ist definiert, um den Kategorienamen auf der Kategorielistenseite anzuzeigen, und @items ist so definiert, dass es mit jedem erweitert wird.
Erstellen Sie category.html.erb unter items.
ruby:items/category.html.erb
#Anzeige des Kategorienamens
@item.category.name
#Erweitern Sie den Inhalt der Kategorie
@items.each do |item|
~ Ausgelassen ~
end
Ich denke, ich könnte es ganz einfach schreiben, indem ich jede ID mit link_to übergebe. Bitte lassen Sie mich wissen, ob es einen besseren Weg gibt!
✔︎
Recommended Posts