레일 스 는 Paperclip 으로 사진 을 업로드 합 니 다.
5615 단어 RailsPaperclipImageMagick
1.종이 클립 다운로드 보석 가방
(1)Gemfile 에 쓴다
gem 'paperclip'
(2)터미널 에서 실행
bundle install
2.paperclip 사용
(1)터미널 에 입력:
rails g paperclip image_news image
이렇게 하면 원래 의 imagenews model 에 image 속성 을 추가 하 는 동시에 app/db/migrate 폴 더 에서
새 xxxxxxadd_attachment_image_to_image_news.rb 파일 내용:
class AddAttachmentImageToImageNews < ActiveRecord::Migration
def self.up
change_table :image_news do |t|
t.attachment :image
end
end
def self.down
drop_attached_file :image_news, :image
end
end
(2)데이터베이스 이전,터미널 입력:
rake db:migrate
하면,만약,만약...뉴스 모델 에 다른 속성 이 없 으 면 schema.rb 파일 에서:
ActiveRecord::Schema.define(version:xxxxxxx) do
create_table "image_news", force: true do |t|
t.datetime "created_at"
t.datetime "updated_at"
t.string "image_file_name"
t.string "image_content_type"
t.integer "image_file_size"
t.datetime "image_updated_at"
end
end
(3)이어서 image뉴스.rb 파일 에 다음 과 같이 적 혀 있 습 니 다.
class ImageNews < ActiveRecord::Base
has_attached_file :image, //:styles => { :small => "150x150>"},
:url => '/images/:id/:style/:basename.:extension',
:path => ':rails_root/public/images/:id/:style/:basename.:extension'
validates_attachment_presence :image
validates_attachment_size :image, :less_than => 5.megabytes
validates_attachment_content_type :image, :content_type => %w(image/jpeg image/png)
end
위의 코드 를 사용 하려 면:styles 는 imageMagick 이 설치 되 어 있 는 지 확인 해 야 합 니 다.설치 하지 않 으 면 오류 가 발생 합 니 다.
그리고. :path :rails_root/Public 뒤의 것 은:url 과 같 아야 합 니 다.여기 처럼.
'images/:style/:basename.:extension'
:rails_root
The path to the Rails application.( Rails , RAILS_PATH 。)
:rails_env
The current environment (e.g. development, production)( , :development,production)
:class
The class name of the model that the attachment is part of, underscored and pluralised for your convenience.( , 。)
:basename
The name of the originally uploaded file without its extension.( , 。)
:extension
The file extension of the originally uploaded file.( )
:id
The ID of the model that the attachment is part of.( id)
:id_partition
The same as :id but formatted as a string using ID partitioning.( :id , ID partitioning 。)
:attachment
The name of the attachment attribute (defined in the call to has_attached_file) downcased and pluralised for your enjoyment.( , has_attached_file , 、 。)
:style
The current style of the attachment file being processed (e.g. in the ‘discarding an uploaded image‘ example above the :style would be one of ‘original’ or ‘small’) ( , 。)
(4)controller(controllers/imageupload_controller.rb)에 다음 과 같이 쓰 여 있 습 니 다:
class ImageUploadController < ApplicationController
def image_upload_view
@image_news = ImageNews.new
end
def upload
@image_news = ImageNews.new
@image_news.image = params[:image_news][:image]
@image_news.save
redirect_to(:action => 'image_show_view', :id => @image_news.id)
end
def image_show_view
@image_news = ImageNews.find(params[:id])
end
end
(5)view(views/imageupload_view.html.erb)작성:
<div style="background: #F5F5F5; width: 659px; padding: 50px; margin: 100px auto auto auto">
<%= form_for @image_news, :url =>{:action => 'upload'}, :html => {:multipart => true} do |f| %>
<p> :</p>
<%= f.file_field :image%>
<%= f.submit ' ' %>
<% end %>
</div>
(6)view/imageshow_view.html.erb 에 쓰 기:
<div style="margin: 100px 80px 100px 500px">
<%= image_tag @image_news.image.url%>
</div>
(7)ImageMagick 설치(Mac OS X 10.8.5) 설치 가 성공 적 이 고 편리 하지만 먼저 xcode 를 설치 해 야 합 니 다.
curl -O ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
tar -zxf ImageMagick.tar.gz
cd ImageMagick-*/
./configure --prefix=/opt/local
make
sudo make install
홈 브 루 로 도 설치 할 수 있다.
참고:http://yuan.iteye.com/blog/604174
http://huacnlee.com/blog/rails-plugin-paperclip-for-image-upload/
http://railscasts.com/episodes/134-paperclip
http://elf8848.iteye.com/blog/455675
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
새로운 UI의 Stripe Checkout을 Rails로 만들어 보았습니다.Stripe의 옛 디자인인 Stripe의 구현 기사는 많이 있습니다만, 지금 현재의 디자인에서의 도입 기사는 발견되지 않았기 때문에 투고합니다. Stripe의 체크아웃을 stripe의 문서라든지 stackoverfl...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.