Ruby on Railsの静的ページ
質問
のようなページを持つRuby on Railsアプリケーションの標準的な作り方は何でしょうか?
- ホーム
- について
- 連絡先
私はこのような動作をする簡単なWebアプリケーションを作る方法を学びたいので、誰かがgemを使用すると言うだけでなく、リンクや回答を持っていたら感謝します。
どのように解決するのですか?
これらのページでコンテンツをどのように処理したいかによります。
アプローチ#1 - ビューにコンテンツを格納する
すべてのコンテンツを ERB ビューに格納したいだけなら、非常にシンプルなアプローチとして
PagesController
を作成し、その目的は静的なページを扱うことです。 各ページは、コントローラ内の1つのアクションによって表されます。
pages_controller.rbを参照してください。
class PagesController < ApplicationController
def home
end
def about
end
def contact
end
end
routes.rb:
match '/home' => 'pages#home'
match '/about' => 'pages#about'
match '/contact' => 'pages#contact'
次に app/views/pages の下に home.html.erb, about.html.erb, contact.html.erb というビューを作成します。 これらのビューには、静的ページに必要なあらゆるコンテンツが含まれます。 デフォルトでは、アプリのapplication.html.erbレイアウトを使用します。
また ページキャッシング を利用するのもよいでしょう。
アプローチ2 - コンテンツのデータベースへの格納
私が使ったもう一つのアプローチは、静的なページのための非常に基本的なCMSを作ることです。 この場合、ページはモデルで表現されます。 これは friendly_id gem を使って各ページのスラッグを処理し、IDではなくURLのきれいな名前(例:/about)で取得できるようにしています。
page.rbにあります。
class Page < ActiveRecord::Base
attr_accessible :title, :content
validates_presence_of :title, :content
has_friendly_id :title, :use_slug => true, :approximate_ascii => true
end
pages_controller.rb。
class PagesController < ApplicationController
def show
@page = Page.find(params[:id])
render 'shared/404', :status => 404 if @page.nil?
end
end
show.html.erb:
<%= raw @page.content %>
routes.rb:
match '/:id' => 'pages#show'
注意:このエントリーは全てにマッチするので、routes.rbの最後に置いてください。
それから、どのようにページを作成、編集、更新したいかはあなた次第です - 管理インターフェイスを持つこともできますし、何らかの方法で公開インターフェイスに組み込むこともできます。 このアプローチはページキャッシングの恩恵を受けることもできます。
関連
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Rubyのattr_accessorとは何ですか?
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Ruby on RailsでJSON出力を "きれい "にフォーマットする方法
-
[解決済み】Railsの認証トークンを理解する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Webpacker::Manifest::MissingEntryError【クローズド
-
[解決済み] Railsです。NameError: 初期化されていない定数
-
[解決済み] Ruby on Railsのランナー
-
[解決済み] Mac OS Xにhomebrewがインストールされているかどうかを確認する方法
-
[解決済み] どなたか、collection_selectをわかりやすく説明していただけませんか?
-
[解決済み] DestroyとDeleteの違い
-
[解決済み] Paramが無いか、値が空である。ParameterMissing in ResultsController#update
-
[解決済み] nil:NilClass の未定義メソッド `each' - しかし、なぜ?
-
[解決済み] Railsで `before_action` での `only:` はどのように機能するのですか?
-
[解決済み] レイル 4 radio_button_tag default not selected