2

私の質問は、レールでネストされた静的ページを作成するにはどうすればよいですか? 私はRuby on Railsを「独学」した初心者で、この答えを探していました。助けていただければ幸いです、ありがとう。

例えば:

  • サイトのルート
    --- 船舶 (http://wwww.example.com/ships)
    ------ 船舶の種類 (http://wwww.example.com/ships/types-of-ships)


ディレクトリ構造:

アプリ/ビュー/静的/船/船の種類


現在の静的コントローラー

class StaticController < ApplicationController def show render params[:pages] end end


ルート

get "/:pages" => "static#show"

4

1 に答える 1

4

Rails アプリで静的ページを作成する場合は、いくつかのリソースを確認してください。

上記の最後のリンクは実際には静的ページへのリンクなので、ネストに関する質問のより具体的な部分に対処します.

URL をコントローラー アクション (およびビュー) にマップする場合は、単純にルート ファイルに追加できます。名前空間を付けたい場合は:pages、特定の船名を渡すシンボルの前に名前空間を追加するだけです。

get "ships/:pages" => "static#show"
# so going to www.example.com/ships/titanic
# will show your app/view/static/ships/titanic.html.erb page

代替: 静的ページの Gem

あるいは、思考ボットは、セットアップの一部を処理するhigh_voltageと呼ばれる gem を作成しました。私は使っていませんが、一見の価値があるかもしれません。

ルート上の警告

ただし、あなたが持っているルート エントリでは、意図しない結果が生じる可能性があることに注意してください。あなたが持っているファイルと一致しないルートを誰かが入力すると、エラーがスローされるためです。

このルートに進む場合は、キャッチオールルートを読むことをお勧めします. あなたは出来る:

または、ユーザーにとって最も役立つと思われるその他のもの。

繰り返しますが、これはすべてのエラーをキャッチし、レールエンジンなどの他のアイテムを無視するため、注意事項があります(私が理解していることから)。

代替アーキテクチャ

コメントの回答に基づいてこのセクションを変更できますが、このカテゴリに多数のページを追加したいようです。

これらはすべて船であり、それぞれの周りに同様のデータ ポイントがあると思われるため、この情報をデータベースに保存し、Ship scaffold を作成して通常の Rails プロジェクトのように管理することができます。

これにより、次のことが可能になります。

  • 好きなだけ船を保管してください
  • テンプレート化された単一の#showページ を持つ
    • これにより、ビューが DRY に保たれ、テンプレートの変更がはるかに簡単になります
于 2012-12-15T02:16:19.160 に答える