作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建 Redmine 插件,在该插件中我想上传文件或图像,并在显示操作中显示图像或下载文件。谁能帮帮我。
在模型中
class UserInformation < ActiveRecord::Base
unloadable
belongs_to :project
acts_as_attachable :view_permission => :view_files,
:edit_permission => :manage_files,
:delete_permission => :manage_files
在 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
, Controller AttachmentsController
和附件 View 和助手。
您可以在自己的类(class)中使用它们。
添加acts_as_attachable...
在 unloadable
之后为您的模型类提供必要的选项排。选项是:
:view_permission => :view_attachments_permissions
, 其中view_attachments_permissions
是标准或插件权限。如果用户想要下载附件,他必须拥有该权限的角色,或者该权限必须是公开的(仅限插件权限 - 源代码中的公共(public)选项集)。添加<%= render :partial => 'attachments/form' %>
在您看来。
然后调用save_attachments
保存模型实例时 Controller 中的方法。或者实例保存后手动添加附件:
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
附件添加后立即保存,但没有容器信息
例如,我修补了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 或将其代码和样式表复制到您的插件。
关于ruby-on-rails - Redmine 如何在插件中上传和下载文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31513862/
我是一名优秀的程序员,十分优秀!