paperclipの使い方をまとめる。
こちらのページを追った。
projectの作成。
$ rails new paperclip
$ cd paperclip
Gemfileに追記。
Gemfile
gem 'paperclip'
$ bundle install
scaffoldの作成。
$ rails g scaffold user name:string password:string
userモデルに追記。
app/models/user.rb
class User < ApplicationRecord
has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"
validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/
end
カラムを追加。
$ rails g migration add_avatar_to_users
db/migrate/XXXXXXXXXXXXXX_add_avatar_to_users.rb
class AddAvatarToUsers < ActiveRecord::Migration[5.1]
def change
end
def self.up
add_attachment :users, :avatar
end
def self.down
remove_attachment :users, :avatar
end
end
$ rake db:create db:migrate
以下のように変更を加える。
app/views/users/_form.html.erb
<div class="field">
<%= form.label :avatar %>
<%= form.file_field :avatar %>
</div>
app/controllers/users_controller.rb
def user_params
params.require(:user).permit(:name, :password, :avatar)
end
$ rails s
動いていることを確認。