私は、CMS のように動作する Rails の Web アプリで作業しています。他の記事 (または他のオブジェクト クラス) へのリンクを含むテキスト属性を持つ記事があります。現在、属性を HTML として保存しています。
これらのリンクを比較的簡単に変更できる方法でモデル化し、絶対 URL の代わりにオブジェクト ID への参照を含める良い方法はありますか?
私が考えていた解決策の 1 つは、次のような特別なマークアップを使用することでした。
[link_to "Text for the link", Article:12]
ここで、12 はリンク先の記事の ID です。このマークアップは、テキストがレンダリングされるときに解析されます。
これの欠点は、データベースにアクセスしてオブジェクトの種類と ID (テキストを編集している人はIDを知りません)。
これに対する簡単な解決策はありますか?
それとも、絶対 URL を使用することに固執する必要がありますか (これは、メンテナンスの問題に加えて、常に本番環境を指し示すため、開発時に煩わしく、私にとって混乱を招きます)?
さらに、他の言語 (php、Wordpress、他の CMS など) でこの問題にうまく取り組んでいる同様の例はありますか? これは CMS では非常に重要であり、優れたシステムがこれらすべてのリンクを処理できれば、工数を大幅に削減できると考えています。
編集:
私が考えている別の可能な解決策は、記事のリンクをコードに直接コピーさせることですが、送信時に正しい関連付け ID を生成し、URL 構造が変更された場合にリンクが常に最新。このアプローチを試したことがあれば、意見や経験をお聞きしたいと思います。
このアプローチの課題は、Rails とのリンクを解析し、それが Article を指していること、およびその記事が id を持っていることを見つけること##
です。次に、解析およびレンダリング時に常にその記事への実際のリンクに変換されるショートコードを挿入する必要があります。
これを実現できる方法を見つけました:
Rails.application.routes.recognize_path
しかし、私が今見ていないいくつかの警告があるかもしれません...
編集番号 2
また、コンテンツ エディターとしてCKEditorを選択したことも明記したいと思いますが、より明確な利点があれば他のものも検討します。