2020年5月12日のRedmine活動

2020-05-12

Feature #33102: Import user accounts from CSV file (パッチ確認)

#note-7render になぜ rescue nil を追加しているのかという指摘があった。ユーザーのCSVインポートはサイドバー表示のテンプレートを用意していないため、renderで読み込もうとしてエラーが発生するのを防ぐため(#note-8)。

diff --git a/app/views/imports/new.html.erb b/app/views/imports/new.html.erb
index e7ca82428..b9607e650 100644
--- a/app/views/imports/new.html.erb
+++ b/app/views/imports/new.html.erb
@@ -12,4 +12,4 @@
   <p><%= submit_tag l(:label_next).html_safe + " &#187;".html_safe, :name => nil %></p>
 <% end %>
 
-<%= render :partial => "#{import_partial_prefix}_sidebar" %>
+<%= render :partial => "#{import_partial_prefix}_sidebar" rescue nil %>

ただ、すべての例外を捕捉して nil を返すことは、本当にエラーが発生したときに気づくのが難しくなるので好ましくない。ほかの方法がないか検討してみた。

以下のように ActionView::LookupContext::ViewPaths#exists? を使うことで テンプレートの存在有無を確認できた。

<%= render :partial => "#{import_partial_prefix}_sidebar" if lookup_context.exists?("_#{import_partial_prefix}_sidebar", lookup_context.prefixes) %>

公式サイトのチケットにコメント(#note-9)。

2020年5月13日のRedmine活動

2020年5月11日のRedmine活動