それ自体との関係を持つProject
テーブルを持つ Ruby on Rails システムに取り組んでいます(循環関係は不可能です)。このように、プロジェクトは複数の他のプロジェクトの一部になることができます。これは非常に便利であり、新しいアプリケーションのベースとなっているレガシー システムのキラー機能です。、、およびその他の単純なプロパティを使用して、すべてのプロジェクトを 1 つのページに表示する方法が必要です。各プロジェクトは、それぞれの親に関連付けて表示する必要があり (重複したエントリは問題ありません)、各プロパティ値は、ブラウザーによって他の各プロパティと揃える必要があります (常に壊れる「静的な幅」の混乱はありません)。プロジェクトは折りたたみ可能でなければなりませんが、これはソリューションには関係ないと思います。has_and_belongs_to_many
name
short_name
現在の解決策は、HTML テーブルにツリーを表示するにはどうすればよいですか? に似ています。解決策: を使用し、<table>
CSS を使用して左端の列に「ツリーのような」構造を実装しますpadding-left
。各プロジェクトの親プロジェクト ID を保存することにより、完全な親子関係が維持されます。これはセマンティック マークアップではないため、結果のテーブルを JavaScript で処理するのは困難です。<tr>
ノードを折りたたむ場合は、子のリストを単に削除するのではなく、同じレベルにあるノードが見つかるまで、折りたたまれたノードの後にそれぞれをトラバースする必要があります。また、いくつかのプロジェクトが複数回表示されます
そのようなデータ構造を HTML (任意のバージョン) で表現するセマンティックな方法はありますか? 私の知る限り、テーブルのリストは適切に配置されず、リストとテーブルを混在させることはできません。
既存のシステムの構造を説明するためだけに、プログラミング言語がタスクに関連していないため、ruby
またはでタグ付けしていません。ruby-on-rails