【Rails】carrierwave 이미지 투고 기능 (메모)
6682 단어 Railscarrierwave이미지 게시 기능초보자루비
목표
개발 환경
전제
구현
1. Gemfile에 carrierwave를 작성하여 설치
Gemfilegem 'carrierwave'
bundle install
합니다.
터미널$bundle install
2. post 테이블에 이미지 열 추가
터미널$rails g migration AddImageToPosts image:string
마이그레이션 파일이 생성됩니다.image
열이 추가되었는지 확인하고 마이그레이션합니다.
class AddImageToPosts < ActiveRecord::Migration[6.1]
def change
add_column :posts, :image, :string
end
end
터미널$rails db:migrate
3. 이미지 업로더 생성
터미널$rails g uploader image
image_uploader.rb
파일이 생성됩니다.
4. 모델 연결
post
모델에 이미지 업 로더를 연결합니다.
app/models/post.rbclass Post < ApplicationRecord
mount_uploader :image, ImageUploader
end
5. 컨트롤러 기술
praivate
의 post_params
에 image
추가.
app/contrllers/posts_controller.erbprivate
def post_params
params.require(:post).permit(:content, :title, :image)
end
6. 뷰 설명
이미지 게시 양식 추가.
app/views/posts/_form.html.erb<%= form_with(model: @post)do |f| %>
<div>
<%= f.label :title, ' タイトル' %>
<%= f.text_field :title %>
</div>
<div>
<%= f.label :content, '内容' %>
<%= f.text_field:content %>
</div>
<%= f.label :image, '画像' %>
<%= f.file_field :image %>
<div>
<%= f.submit '投稿'%>
</div>
<% end %>
이미지 게시 양식이 완료되었습니다.
이것만으로는 투고할 수 없기 때문에 image_tag
를 사용해 투고할 수 있도록 기술합니다.
app/views/posts/show.html.erb<h5><画像投稿></h5>
<p>タイトル:<%= @post.title %></p>
<p><%= image_tag @post.image.url %></p>
<p>内容:<%= @post.content %></p>
작성했으므로 게시할 수 있어야합니다.
이런 느낌으로 무사 투고로 할 수 있었습니다.
이상입니다.
참고
참고로 한 기사입니다.
h tps:// 퀵했다. 작은 m/k19911848/있어 MS/아 082 C4 그림 0c0103f935b1
Reference
이 문제에 관하여(【Rails】carrierwave 이미지 투고 기능 (메모)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/moru0606/items/ae7b1742787f50b4e254
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
gem 'carrierwave'
$bundle install
$rails g migration AddImageToPosts image:string
class AddImageToPosts < ActiveRecord::Migration[6.1]
def change
add_column :posts, :image, :string
end
end
$rails db:migrate
$rails g uploader image
class Post < ApplicationRecord
mount_uploader :image, ImageUploader
end
private
def post_params
params.require(:post).permit(:content, :title, :image)
end
<%= form_with(model: @post)do |f| %>
<div>
<%= f.label :title, ' タイトル' %>
<%= f.text_field :title %>
</div>
<div>
<%= f.label :content, '内容' %>
<%= f.text_field:content %>
</div>
<%= f.label :image, '画像' %>
<%= f.file_field :image %>
<div>
<%= f.submit '投稿'%>
</div>
<% end %>
<h5><画像投稿></h5>
<p>タイトル:<%= @post.title %></p>
<p><%= image_tag @post.image.url %></p>
<p>内容:<%= @post.content %></p>
참고로 한 기사입니다.
h tps:// 퀵했다. 작은 m/k19911848/있어 MS/아 082 C4 그림 0c0103f935b1
Reference
이 문제에 관하여(【Rails】carrierwave 이미지 투고 기능 (메모)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/moru0606/items/ae7b1742787f50b4e254텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)