我想知道,如何使用Rails上传word,pdf等文档.我可以用回形针吗?
我在Windows 7 64bit上安装了ImageMagick,我有Paperclip Gem.我的用户模型如下所示:
class User < ActiveRecord::Base
# Paperclip
has_attached_file :photo,
:styles => {
:thumb=> "100x100#",
:small => "150x150>" }
end
Run Code Online (Sandbox Code Playgroud)
在paperclip.rb和development.rb中,我有:
Paperclip.options[:command_path] = 'C:/Program Files/ImageMagick-6.6.7-Q16'
Run Code Online (Sandbox Code Playgroud)
我的_form看起来像这样:
<%= form_for(@user, :html => { :multipart => true } ) do |f| %>
<% if @user.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>
<ul>
<% @user.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :username %><br …Run Code Online (Sandbox Code Playgroud) 在最近的回形针宝石升级中,我注意到正在修改上传的文件名,并且某些字符正在更改为下划线.
我不喜欢它将空格改为下划线的事实.文件名中的空格有什么问题?90年代已经结束了......
我正在尝试使用PaperClip并且喜欢它,它看起来是我们项目的一个很好的解决方案.但是,除了公共文件夹之外,我们还希望将上传的文件存储在服务器(ubuntu)上的其他位置,并且S3不是一个选项.那2个问题:
1)除了应用程序根目录之外,如何设置将上传存储到ubunto中另一个目录的路径和URL,或者2)如何将上传的文件也存储在另一个LAN服务器上.
在此先感谢所有回复的人.经过详尽的搜索后,我很惊讶只能看到开发人员只使用rails_root或S3在PaperClip中存储的Google搜索结果.此外,如果有人建议更好的文件上传解决方案,以满足我们的需求,请务必提供相关建议.再次感谢!
如何使用paperclip/Imagemagick将图像保存为渐进式图像?
我正在使用的代码:
has_attached_file :photo, {
:styles => {
:medium => ["200x200#", :jpg] ,
:small => ["192x256#", :jpg],
:thumb => ["50x50#", :jpg],
:small_thumb =>["30x30#", :jpg]
},
:convert_options => {
:medium => "-quality 60",
:small => "-quality 60",
:thumb => "-quality 60",
:small_thumb => "-quality 60"
},
:default_url => "/assets/default_:style.png" }.merge(PAPERCLIP_STORAGE_OPTIONS)
Run Code Online (Sandbox Code Playgroud) 我正在使用回形针为一栋建筑上传一张照片.http://www.youtube.com/watch?v=KGmsaXhIdjc我用这种方式完成了它.但我知道我决定将很多照片上传到一栋楼.我可以用回形针做到这一点,还是必须改变它并使用jQuery?如果我可以怎么样? Ps:如果需要,我会上传我的代码.ps:我想在photo2和photo 3的数据库中再制作2列.顺便说一句,我看到所有人都生成资产来做到这一点.我认为我用不同的方式上传1张照片.这意味着我必须改变一切吗?
更新1:
在routes.rb中
resources :buildings do
resources :photos
end
Run Code Online (Sandbox Code Playgroud)
在buldings> _form
<%= form_for(@building, :html=>{:multipart => true}) do |f| %>
<% if @building.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@building.errors.count, "error") %> prohibited this building from being saved:</h2>
<ul>
<% @building.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :title %><br />
<%= f.text_field :title %>
</div>
<div class="field">
<%= f.label :status %><br />
<%= f.select :status, Building::STATUS, …Run Code Online (Sandbox Code Playgroud) 我有一个模型:
FactoryGirl.define do
factory :model do
mini_image { fixture_file_upload(Rails.root.join('spec', 'photos', 'rails.png'), 'image/png') }
name "Test model"
end
end
Run Code Online (Sandbox Code Playgroud)
当运行rake规范时,我收到此错误:
NoMethodError:
undefined method `fixture_file_upload'
Run Code Online (Sandbox Code Playgroud)
我已经添加到我的spec_helper了
config.include ActionDispatch::TestProcess
Run Code Online (Sandbox Code Playgroud)
我发现我的工厂工作的唯一方法是在我的models.rb文件的开头添加这一行,但它不是很干净:
include ActionDispatch::TestProcess
Run Code Online (Sandbox Code Playgroud)
有人有另一种解决方案
谢谢
我有一个资产模型类,它使用paperclip 3.5.2有不同的大小:
class AssetSerializer < ActiveModel::Serializer
attributes :id, :asset # works fine
# would like to output small but don't seem to be able to
#attributes :id, :asset, :asset(:small)
end
Run Code Online (Sandbox Code Playgroud)
这有点令人困惑,因为Paperclip使用了名称类,而模型被称为类(确实令人困惑).我收到以下错误:
/Users/jt/repos/rails/app/serializers/asset_serializer.rb:2: syntax error, unexpected '(', expecting keyword_end
attributes :id, :asset, :asset(:small)
Run Code Online (Sandbox Code Playgroud)
它显然不喜欢传递给资产的论点
ruby-on-rails paperclip ruby-on-rails-3.2 active-model-serializers
我的app/assets/images/文件夹中有一个名为“Flower.jpg”的图像。<%=image_tag("Flower.jpg")%>可以显示它,但我想用 html 显示它。<img src="Flower.jpg">什么都不做。
对于我的模型用户我还使用回形针,其中将影像存储public/system/users/avatars/000/000,并User.avatar_file_name返回绝对文件路径,在这种情况下是这样的:/system/users/avatars/000/000/157/thumb/Flower.jpg?1248273956。像这样将此路径插入 src:<img src="<%=@user.avatar_file_name%>">可以显示图像。
我在 Rails 控制台中找到了 Flower.jpg 的绝对路径:
> helper.image_tag("Flower.jpg")
=> "<img alt=\"Flower\" src=\"/assets/Flower.jpg\" />
Run Code Online (Sandbox Code Playgroud)
但是<img src="/assets/Flower.jpg\">,即使显示,也不会显示<img src="/system/users/avatars/000/000/157/thumb/Flower.jpg?1248273956">。这是为什么?
如何在模型中使用 cookie 值。
我有一个使用回形针上传文件的模型,并添加了内插来传递 cookie 值。此 cookie 在登录到用户文件夹名称时设置。
我有一个上传模型来上传文件,并希望传递文件夹名称以在以下代码的路径中使用
has_attached_file :upload,
:url => "/controllers/original/:basename.:extension",
:path => "/files/uploads/:folder/:basename.:extension"
Run Code Online (Sandbox Code Playgroud)
这就是我在控制器中使用它的方式
@upload = Upload.new(params[:upload])
Run Code Online (Sandbox Code Playgroud)
所以我不知道如何将文件夹名称传递给模型,我尝试使用插值但局部变量在那里也不可用,所以我被困在这里,
我正在尝试这样做,因为我无法在模型中获取会话或当前用户。
paperclip ×10
ruby ×2
cookies ×1
factory-bot ×1
file ×1
file-upload ×1
html ×1
image ×1
imagemagick ×1
jquery ×1
optimization ×1
path ×1
photos ×1
rspec ×1
session ×1
storage ×1