1

Redmine インストール (Redmine 0.7.3.devel.2093 (MySQL)) の UI を変更しようとしています。

Redmine でプロジェクトを表示すると、プロジェクトのすべてのサブプロジェクトのリストが生成されます。

たとえば、app/views/projects/index.rhtmllink_to関数を呼び出します。

<% if @project_tree[project].any? %>
    <p><%= l(:label_subproject_plural) %>:
    <%= @project_tree[project].sort.collect {|subproject| 
       link_to(h(subproject.name), {:action => 'show', :id => subproject}, :class => (User.current.member_of?(subproject) ? "subp fav" : "subp"))}.join(', ') %></p>
<% end %>

次の HTML を出力します。

<p>Subprojects:
<a href="/projects/show/foo" class="subp fav">Foo Subproject</a>, <a href="/projects/show/bar" class="subp">Bar Subproject</a>, <a href="/projects/show/baz" class="subp fav">Baz Subproject</a></p>

サブプロジェクトのコンマ区切りのリストを視覚的に解析するのは非常に難しいことがわかりました。各サブプロジェクトをそれぞれの行にリストしたいと考えています。(どのようなマークアップでもかまいません。各リンクに UL、OL、または P タグを付けるのが理想的ですが、カンマの代わりに BR を付けてもまったく問題ありません。)

この変更を行う最善の方法は何ですか? link_toアプリで が定義されている場所が見つかりません。fordef link_to(などを grep しても、何も表示されません。私は UI タイプなので、Rails がこれをどのように処理するかはよくわかりません。ビュー テンプレートで定義されていないようです。

4

3 に答える 3

1

提供したコードで直接実行できます。変えるだけ

join(', ')

join('<br />')

それはそれを行う必要があります。

于 2009-02-04T22:18:19.753 に答える
1

link_toは Rails フレームワークによって提供されます。リンクをリストとして生成するのではなく、単一のリンクを作成するだけです。問題は sort.collect と link_to への呼び出しを生成するブロックです

これは機能し、サブプロジェクトをリスト項目に入れます

<% @project_tree[project].sort.collect do |subproject| %>
  <li>        
    <%= link_to(h(subproject.name), {:action => 'show', :id => subproject}, :class => (User.current.member_of?(subproject) ? "subp fav" : "subp")) %>
  </li>
<% end %> 
于 2009-02-04T22:19:32.030 に答える
0

Redmineトランクの最新バージョンでは、プロジェクトリストがHTMLリスト(ulおよびli)を使用するように変更されていることを指摘したいと思います。

于 2009-02-05T02:19:10.517 に答える