Могу ли я прикрепить файл к группе? - PullRequest
0 голосов
/ 05 июня 2018

Эль-Гуг говорит, что никто не прикреплял файл к группе раньше;Я нахожу шум только при поиске «redmine attachment group».

Однако этот тест проходит;По-видимому, я могу прикрепить файл к родительскому классу группы, «Принципал»:

def test_attach_a_file_to_a_group
  set_tmp_attachments_directory
  group = Group.find_by_lastname!('B Team')

  a = Attachment.new(:container => group,
                     :file => uploaded_test_file("japanese-utf-8.txt", "text/plain"),
                     :author => User.find(1))
  assert a.save!
  assert_equal 'japanese-utf-8.txt', a.filename
  assert_equal 'Principal', a.container_type
end

Так, куда мне идти дальше?Должен ли мой плагин повторно реализовать файл «groups / _form.html.erb» и добавить партиал, который отображает кнопку «Выбрать файлы»?Или я должен сначала что-то исправить в Группе, чтобы подготовить его к использованию файла, который, вероятно, не знает, прикреплен к нему?

Я сообщу здесь о том, что обнаружил ...

1 Ответ

0 голосов
/ 06 июня 2018

Кажется, я не могу этого сделать.Я документирую здесь, как далеко я дошел.

Сначала я добавил эту строку в тест:

assert_equal 1, group.attachments.count

Это заставило меня пропатчить группу и добавить acts_as_attachable.Ядро патча:

  def self.included(base)
    base.class_eval do
      acts_as_attachable
    end
  end

Следующим шагом было скопировать app/views/groups/_form.html.erb в папку app моего плагина и добавить строки, которые отображают и добавить новые вложения:

<% extend AttachmentsHelper %>
<%= link_to_attachments @group, :thumbnails => true %>
<p><%=l(:label_attachment_plural)%><br /><%= render partial: 'attachments/form', locals: { container: @group } %></p>

Это потребовало, чтобы я пропатчил GroupsController с псевдонимом update до update_with_attachments и добавил строку, которая сохраняет вложение:

      @group.save_attachments params[:attachments]

Наконец, поскольку acts_as_attachable предполагает, что у вас есть проект, япришлось добавить def project; nil; end в мою группу.

И это все, что я мог сделать.Когда я проверил вручную, я получил запись, которая ответила на URI поиска с 404. https://our.domain.com/attachments/thumbnail/6053?size=96.Я ставил Rails.logger.warn строку над каждым render_404 и аналогичным, который мог найти, и я так и не понял, какой из них рендерит 404. Контроллер Attachments правильно обнаружил вложение, но это было настолько далеко, насколько я мог отследить, что происходит.

Итак, теперь я собираюсь удалить весь этот новый код и перейти к системе, в которой мой код, для которого требуется группа, для которой требуется изображение, просто находит его, просматривая вложения в проектах, связанных с этой группой..

...