1

それ自体との関係を持つProjectテーブルを持つ Ruby on Rails システムに取り組んでいます(循環関係は不可能です)。このように、プロジェクトは複数の他のプロジェクトの一部になることができます。これは非常に便利であり、新しいアプリケーションのベースとなっているレガシー システムのキラー機能です。、、およびその他の単純なプロパティを使用して、すべてのプロジェクトを 1 つのページに表示する方法が必要です。各プロジェクトは、それぞれの親に関連付けて表示する必要があり (重複したエントリは問題ありません)、各プロパティ値は、ブラウザーによって他の各プロパティと揃える必要があります (常に壊れる「静的な幅」の混乱はありません)。プロジェクトは折りたたみ可能でなければなりませんが、これはソリューションには関係ないと思います。has_and_belongs_to_manynameshort_name

現在の解決策は、HTML テーブルにツリーを表示するにはどうすればよいですか? に似ています。解決策: を使用し、<table>CSS を使用して左端の列に「ツリーのような」構造を実装しますpadding-left。各プロジェクトの親プロジェクト ID を保存することにより、完全な親子関係が維持されます。これはセマンティック マークアップではないため、結果のテーブルを JavaScript で処理するのは困難です。<tr>ノードを折りたたむ場合は、子のリストを単に削除するのではなく、同じレベルにあるノードが見つかるまで、折りたたまれたノードの後に​​それぞれをトラバースする必要があります。また、いくつかのプロジェクトが複数回表示されます

そのようなデータ構造を HTML (任意のバージョン) で表現するセマンティックな方法はありますか? 私の知る限り、テーブルのリストは適切に配置されず、リストとテーブルを混在させることはできません。

既存のシステムの構造を説明するためだけに、プログラミング言語がタスクに関連していないため、rubyまたはでタグ付けしていません。ruby-on-rails

4

1 に答える 1

0

リストと表を混在させることができます...あなたの投稿は少し理解しにくいです。絵が役立つと確信していますが、私がそれから取り除くことができるものから、できる限り助けようとします

<table>
  <tr>
    <% obj1.each do |o1| %>
    <td>
      <ul id="tree_<%= o1.id %>">
        <% obj2.each do |o2| %>
          <li><%= o2.name %></li>
        <% end %>
      </ul>
    </td>
    <% end %>
  </tr>
</table>

次に、指定された ul.tree の列を非表示にすることができます

あなたのニーズを誤解しているかもしれませんが、お役に立てば幸いです。:)

ゴーレール!!

于 2012-04-18T15:25:37.587 に答える