Hallo Frank,
auf den ersten Blick würde ich Dir den Rat geben Dir eines der
zahlreichen Rails-Bücher zu holen und das mal durchzuarbeiten (bspw:
Agile Webdevelopment with Rails). Dort bekommst du die Grundlagen sehr
gut vermittelt. Ansonsten wird es nur unnötig schwer, sich in Rails
einzuarbeiten.
Dennoch ein paar Tips zu Deiner Frage:
Generell müssen die Relationen auf Datenbankebene (die Du schon
richtigerweise gesetzt hast) als Assoziationen in Rails abgebildet
werden. In deinem Fall wäre das:
class Page < ActiveRecord::Base
belongs_to :category
end
class Category < ActiveRecord::Base
has_many :pages
end
Für die Kategorien würde ich einen extra Controller erstellen, etwa
einen CategoryController, der in etwa so aussehen würde:
class CategoryController < ApplicationController
def index
@categories = Category.find(:all)
end
def show
@category = Category.find(params[:id])
@pages = @category.pages
end
end
In der View der index-Action dann sowas in der Art (URL ist Restfull):
<% for category in @categories %>
<%= link_to category.name, category_path(category) %>
<% end %>
Der Pfad “category_path(category)” sieht dann im Browser so aus:
“category/id” und verweist in einem Restfull Design auf die show-Methode
im CategoryController. Falls du nicht Restfull arbeitest, dann schreibe
da stattdessen sowas hin: “:action => “show”, :id => category.id”.
In der show-Methode suchst Du dann über den übergebenen Parameter die
entsprechende Category und kannst aufgrund der Assozationsmethoden
direkt auf die zugehörigen “Pages” zugreifen.
Das war nur mal eine grobe Zusammenfassung. Ich würde Dir aber wirklich
den Tipp geben, diese Grundlagen anhand eines Buches zu lernen.
Hier gibt’s sogar ein deutsches frei von Gallileo. Weiß allerdings
nicht, wie gut oder schlecht das ist.
http://www.galileocomputing.de/openbook/ruby_on_rails/ruby_on_rails_10_010.htm#mj8612ed43287d40386f62cc4b20c34f82
LG
Mike