私は現在、私のページングモデルのための次のセットアップを持っています。最高の解決策は何ですか?前もって感謝します。ユーザーフレンドリーなURLは
0
A
答えて
0
質問にはあまり情報はありません。 これを行うにはいくつかのルートがありますが、それはすべてあなたが何をしているかによって異なります。
ページ数が固定されている場合は、名前< - > idを追跡する静的ハッシュテーブルをそのまま使用できます。
private static readonly Dictionary<string, int> PagesDict = new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase) { { "about", 6 }, { "home", 1 }, { "xxx", 2 } };
///<summary>Gets a page id by a string name. Returns -1 if page doesn't exists.</summary>
public static int GetPageId(string name)
{
int result;
if (!PagesDict.TeyGetValue(name, out result))
return -1;
return result;
}
あなたの代わりに読み書き辞書が必要な場合は、ConcurrentDictionaryを使用することができますが、もちろん、この辞書はどこにも保存されていないと辞書はDBテーブルのようなものからロードされていない場合、紛失したりしますXML。
ページが動的であり、DBからロードされている場合は、IDをIDで指定するテーブルが必要です。テーブルを名前でインデックス化することができ、クエリは非常に高速になるはずです。 DB上のアクセス数を減らしたい場合は、並行辞書を使用する(かなり複雑な)キャッシュシステムを実装することができます。
編集 -
IDを復元するために必要な情報の量が大きくなるか、IDフィールドが格納できる情報量が等しくなければならない:)
私は意味...
パーマリンクする場合一意ではないので、そこからIDを取得する方法はありません。
permalinkフィールドが一意の場合は、IDと同じものです。文字列IDです。 次に、パーマリンクがあなたにIDを返すというクエリを書くことができます。
あなたはフィールドのユニークなカップルからIDを復元することができた場合は、例えば、パーマリンクやfieldX、あなたは「約」パーマリンク=クエリを記述することができ、fieldX =「XXX」
1
つまり、あなたの
を変更def to_param
permalink
end
そして、あなたのページのモデルで
def self.from_param(value)
find_by_permalink(value)
end
を実装します。お使いのコントローラで
あなたは、迅速な対応のために
def show
@page = Page.from_param(params[:id])
...
end
関連する問題
- 1. ユーザーフレンドリーなURLの.htaccess
- 2. ユーザーフレンドリーなURL書き換えルール
- 3. ディレクトリにユーザーフレンドリーなURLを作成する
- 4. MVCルートをよりユーザーフレンドリーなURLにするには?
- 5. ユーザーフレンドリーなURLを作成しても動作しない
- 6. ユーザーフレンドリーなラジオボタンクリック検出
- 7. レポートページタイプのユーザーフレンドリーなページング?
- 8. iis urlユーザーフレンドリーなURLを書き直す複数のルールが矛盾しwokrsではない
- 9. Mailmergeユーザーフレンドリー
- 10. 作成サブモデル、ユーザーフレンドリーな方法
- 11. ユーザーフレンドリーなアドレスの使い方は?
- 12. ユーザーフレンドリーなデータベースは何ですか?
- 13. Base64の画像URLをASP.NETのユーザーフレンドリーURLに変換する方法
- 14. カスケードポーカー:ユーザーフレンドリーvsガイドライン
- 15. SEOとユーザーフレンドリーのためのURLの提案
- 16. Vueアプリケーションにユーザーフレンドリーなエラーメッセージを表示
- 17. ユーザーフレンドリーなタイムゾーン名をデータベース形式
- 18. データをユーザーフレンドリーな方法で事前ロード
- 19. ユーザーフレンドリーな意味論ウィキですか?
- 20. summary_fieldのSilverStripeユーザーフレンドリーなHTMLの値
- 21. リッチテキストエディタに挿入されたSitecoreリンクはユーザーフレンドリーなURLに解決されていません
- 22. Loopback-モデル名はシンプルかつユーザーフレンドリー
- 23. Team Foundation ServerのユーザーフレンドリーなWebフロントエンドはありますか?
- 24. Sitecore Rich Glassでレンダリングしたときにユーザーフレンドリーではない
- 25. C#用のユーザーフレンドリーな.NETリファレンスガイドはありますか?
- 26. ユーザーフレンドリーな基本的な電卓の作成Java
- 27. どのようにユーザーフレンドリーなURLを表示するhtaccessファイルを書くことができますか?
- 28. htaccessの書き換えXMLサイトマップとユーザーフレンドリーなサイトマップ
- 29. rails:レールでのルーティングエラーのユーザーフレンドリーなメッセージを表示
- 30. ユーザーフレンドリーなコマンドラインプロンプトを作成するためのツール?
こんにちは感謝が必要になります。私はそれがto_paramの設定にあると思った余分な情報を追加しないと申し訳ありません。 ページのコンテンツはDBから来ています 以下のフィールド - ID、タイトル、パーマリンク、本文 – user964900