Redmine如何上传和下载插件中的文件



我正在尝试创建Redmine插件,并在该插件我想上传文件或图像,也显示图像或下载文件显示动作。有谁能帮帮我吗?

In Model

class UserInformation < ActiveRecord::Base
  unloadable
  belongs_to :project
  acts_as_attachable :view_permission => :view_files,
                    :edit_permission => :manage_files,
                    :delete_permission => :manage_files

In Controller

    class UserInformationsController < ApplicationController
      unloadable
      require File.dirname(__FILE__) + '/../../../../app/helpers/attachments_helper'
        include AttachmentsHelper
        helper :attachments
在new.html.erb

        <p> <%= render :partial => 'attachments/form' %></p>
在show.html.erb

    <%= link_to_attachments @info, :thumbnails => true %>

你能帮我一下吗?

Redmine已经有了用于处理附件的类-模型Attachment,控制器AttachmentsController以及附件视图和助手。

你可以在自己的类中使用它们。

acts_as_attachable...与必要的选项添加到unloadable行之后的模型类中。选项:

  • 许可选项。例如:view_permission => :view_attachments_permissions,其中view_attachments_permissions是标准或插件权限。如果用户想要下载附件,他必须具有该权限的角色,或者该权限必须是公共的(只有插件权限-源代码中的公共选项集)。
  • 行为选项(添加、删除等后的动作)
  • 可能还有其他选项。

在视图中添加<%= render :partial => 'attachments/form' %>

和调用save_attachments方法在你的控制器时,它保存你的模型实例。或在保存实例后手动添加附件:

params[:attachments].each do |attachment_param|
    attachment = Attachment.where('filename = ?', attachment_param[1][:filename]).first
    unless attachment.nil?
        attachment.container_type = YourModel.name
        attachment.container_id = set.id
        attachment.save
    end
end

附件在添加后立即保存,但没有容器信息


你也可以通过修补来添加附件到现有的redmine类。

例如,我修补了TimeEntry类:

require_dependency 'time_entry'
  module TimeEntryPatch
  def self.included(base) # :nodoc:
      base.send(:include, InstanceMethods)
      base.class_eval do
          unloadable # Send unloadable so it will not be unloaded in development
          acts_as_attachable :after_add => :attachment_added, :after_remove => :attachment_removed
      end
  end
...

您可以直接在Redmine代码中查看示例。

附件用于issue, Project和其他一些型号。我在那里找到了问题的答案!


查看附加图片,你可以使用插件,如Lightbox 2。将插件添加到您的Redmine或复制其代码和样式表到您的插件

我已经在这个插件中做到了:https://github.com/iridakos/release_logs。查看相关代码

最新更新