このレールキャストを見てください - http://railscasts.com/episodes/117-semi-static-pages
あなたがやろうとしていることは実際には「レールのやり方」ではないことに同意しますが、私たちについてのようなページや、一般的にテキストのブロックを持ち、潜在的に今後更新予定。
簡単に言えば、リンク (文字列)、コンテンツ (テキスト)、見出し (文字列) を持つ content_page というモデルを作成する必要があります。次に、次のように見える show アクションだけでコントローラーを作成します-
class ContentPagesController < ApplicationController
def show
@content_page = ContentPage.find_by_permalink(params[:link])
raise ActiveRecord::RecordNotFound, "Page not found" if @content_page.nil?
end
end
そして、ショーアクションのビューでは、次のように言うことができます-
@content_page.content
@content_page.heading
そのレコードのコンテンツと見出し (または ContentPage に割り当てるその他の属性) を取得します。
次に、ルートでは、routes.rb の下部に次のようなものを配置できます (貪欲なルートであるため、下部に配置します) -
match ':link' => 'content_pages#show'
これで www.mywork.com/nike と発話すると、nike をリンクとして含むコンテンツ ページが表示されます。レールがキャストされるのを見る価値があるので、私は非常に簡潔です。
私が言ったように、上記のテクニックは基本的なコンテンツページにのみ適しています。インデックスアクションだけであっても、実際には各ページにコントローラーが必要です:)