تعديل سلوك link_to في تثبيت Redmine (روبي على القضبان)

StackOverflow https://stackoverflow.com/questions/513594

  •  21-08-2019
  •  | 
  •  

سؤال

أحاول تعديل واجهة المستخدم الخاصة بتثبيت Redmine (Redmine 0.7.3.devel.2093 (MySQL)).

عندما تقوم بعرض مشروع في Redmine، فإنه يقوم بإنشاء قائمة بجميع المشاريع الفرعية للمشروع.

على سبيل المثال، app/views/projects/index.rhtml يدعو رابط ل وظيفة:

<% 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 يتم تعريفه في التطبيق؛يتلمس ل def link_to( وما شابه ذلك يظهر شيئا.أنا من نوع واجهة المستخدم، لذا لا أفهم حقًا كيف يتعامل Rails مع هذه الأشياء - لا يبدو أنه تم تعريفها في قوالب العرض.

هل كانت مفيدة؟

المحلول

يمكنك القيام بذلك مباشرة في الكود الذي قدمته.فقط تغير

join(', ')

ل

join('<br />')

يجب أن تفعل ذلك.

نصائح أخرى

رابط ل يتم توفيره بواسطة إطار عمل 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 %> 

أردت أن أشير إلى أن أحدث إصدار من صندوق Redmine قام بتغيير قائمة المشروع لاستخدام قوائم HTML (ul وli).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top