활성 저장 가져오기 방법 [투고 기능 + 이미지 설치와 결합 소개]
12679 단어 게시물 기능RubyRailsActiveStorage
배치
현재 제작 중인 응용 프로그램에 투고 기능을 설치하고 싶습니다.
투고는 글과 그림을 투고할 수 있다.트위터의 투고 기능을 상상해 보면 이해하기 쉽다.
개발 환경
ruby '2.6.5'
rails '6.0.0'
현재 상태
응용 프로그램이 이미 사용자 관리 기능을 실현하였다.
로그인 후 첫 페이지로 이동하여 "안녕하세요, 미스터 제로"를 표시합니다.
devise 가져오는 방법은 아래 보도에서 확인하십시오.
https://qiita.com/ghexcffb/items/7f2b708ed34e84cca15b
이번 결승점.
로그인 상태의 사용자가 초상화 텍스트를 투고하여 맨 위에 표시할 수 있도록 합니다.이미지가 ActiveStarage에서 구현됩니다.
실시
post 모델과 테이블을 만듭니다.
단말% rails g model post
마이그레이션 파일에 필요한 열을 추가합니다.이번에는 post _text입니다.이것은 (references형)에서 user를 인용하는 데 사용되는 키도 설명합니다.
db/migrate/xxxxxxxxxxxxx_create_posts.rbclass CreatePosts < ActiveRecord::Migration[6.0]
def change
create_table :posts do |t|
t.string :post_text, null: false
t.references :user, foreign_key: true
t.timestamps
end
end
end
데이터베이스에post표가 존재하는지 확인하기 위해 이전을 실행합니다.
단말% rails db:migrate
연관 설명
후기와 사용자 모델에서 연관을 설명합니다.
models/post.rbclass Post < ApplicationRecord
belongs_to :user
end
model/user.rbclass User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
has_many :posts, dependent: :destroy
end
활성 문자열 배포
Gemfile에서 Gem을 설명하고 설치합니다.
Gemfilegem 'mini_magick'
gem 'image_processing', '~> 1.2'
단말% bundle install
그런 다음 활성 Strage를 설치하고 마이그레이션을 수행합니다.
단말rails active_storage:install
단말rails db:migrate
post모델에서image열과의 관련을 설명합니다.
models/post.rbclass Post < ApplicationRecord
belongs_to :user
has_one_attached :image
end
설정 확인
마지막으로 투고 기능에 맞는 검증을 설정합니다.이번에는 투고 내용의post_텍스트와 이미지가 모두 필요합니다.따라서 양자의 검증을 설정한다.
여러 가지 조건이 있어 구김이 잘 가지 않을 때 다음과 같이 표로 정리하면 오류를 없앨 수 있다.
조건
열명
필수
post_text
◯
image
◯
검증
model/post.rbclass Post < ApplicationRecord
belongs_to :user
has_one_attached :image
validates :post_text, presence: true
validates :image, presence: true
end
작업 및 라우팅 설정
게시물 기능을 설정하고 필요한 작업 및 라우팅을 표시합니다.투고이기 때문에 new와create의 동작을 설정합니다.
빨대 파라미터도 설명했다.post_텍스트와 이미지를 허용합니다.
controller/post_controller.rbclass PostsController < ApplicationController
def index
@posts = Post.all
end
def new
@post = Post.new
end
def create
@post = Post.new(post_params)
if @post.save #もしセーブしたら
redirect_to root_path #root_pathに戻る
else #それ以外なら
render :new #newのページに戻るよ
end
end
private
#ストロングパラメーター↓
def post_params
params.require(:post).permit(:post_text, :image).merge(user_id: current_user.id)
end
#ストロングパラメーター↑
end
config/routes.rbRails.application.routes.draw do
devise_for :users
get 'posts/index'
root to:'posts#index'
resources :posts #post全てのルーティングを設定
end
뷰 파일 설치
마지막으로 새 투고 화면에 필요한 보기를 설정합니다.완성 보기는 다음 사진입니다.
이렇게 실제 투고하면 데이터베이스에 반영돼 홈페이지로 돌아간다.
view/posts/new.html.erb<h1 class="post_new_title">新規post</h1>
<%= form_with(model: @post, local: true) do |f| %>
<div class="field">
<%= f.label :post_text, "投稿内容" %><br />
<%= f.text_field :post_text %>
</div>
<div class="field">
<%= f.label :image, "画像" %><br />
<%= f.file_field :image %>
</div>
<div class="actions">
<%= f.submit "保存する", class: :form__btn %>
</div>
<% end %>
</div>
훑어보다
투고 내용을 한눈에 보기 위해 each 문장을 사용합니다.
view/index.html.erb<% @posts.each do |post| %>
<%= link_to image_tag(post.image), post_path(post.id) %>
<%= link_to post.post_text, post_path(post.id) %>
<%= link_to "by#{post.user.last_name}", root_path(post.user.id) %>
<% end %>
Reference
이 문제에 관하여(활성 저장 가져오기 방법 [투고 기능 + 이미지 설치와 결합 소개]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ghexcffb/items/b24a5278e7b26a764e75
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
ruby '2.6.5'
rails '6.0.0'
현재 상태
응용 프로그램이 이미 사용자 관리 기능을 실현하였다.
로그인 후 첫 페이지로 이동하여 "안녕하세요, 미스터 제로"를 표시합니다.
devise 가져오는 방법은 아래 보도에서 확인하십시오.
https://qiita.com/ghexcffb/items/7f2b708ed34e84cca15b
이번 결승점.
로그인 상태의 사용자가 초상화 텍스트를 투고하여 맨 위에 표시할 수 있도록 합니다.이미지가 ActiveStarage에서 구현됩니다.
실시
post 모델과 테이블을 만듭니다.
단말% rails g model post
마이그레이션 파일에 필요한 열을 추가합니다.이번에는 post _text입니다.이것은 (references형)에서 user를 인용하는 데 사용되는 키도 설명합니다.
db/migrate/xxxxxxxxxxxxx_create_posts.rbclass CreatePosts < ActiveRecord::Migration[6.0]
def change
create_table :posts do |t|
t.string :post_text, null: false
t.references :user, foreign_key: true
t.timestamps
end
end
end
데이터베이스에post표가 존재하는지 확인하기 위해 이전을 실행합니다.
단말% rails db:migrate
연관 설명
후기와 사용자 모델에서 연관을 설명합니다.
models/post.rbclass Post < ApplicationRecord
belongs_to :user
end
model/user.rbclass User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
has_many :posts, dependent: :destroy
end
활성 문자열 배포
Gemfile에서 Gem을 설명하고 설치합니다.
Gemfilegem 'mini_magick'
gem 'image_processing', '~> 1.2'
단말% bundle install
그런 다음 활성 Strage를 설치하고 마이그레이션을 수행합니다.
단말rails active_storage:install
단말rails db:migrate
post모델에서image열과의 관련을 설명합니다.
models/post.rbclass Post < ApplicationRecord
belongs_to :user
has_one_attached :image
end
설정 확인
마지막으로 투고 기능에 맞는 검증을 설정합니다.이번에는 투고 내용의post_텍스트와 이미지가 모두 필요합니다.따라서 양자의 검증을 설정한다.
여러 가지 조건이 있어 구김이 잘 가지 않을 때 다음과 같이 표로 정리하면 오류를 없앨 수 있다.
조건
열명
필수
post_text
◯
image
◯
검증
model/post.rbclass Post < ApplicationRecord
belongs_to :user
has_one_attached :image
validates :post_text, presence: true
validates :image, presence: true
end
작업 및 라우팅 설정
게시물 기능을 설정하고 필요한 작업 및 라우팅을 표시합니다.투고이기 때문에 new와create의 동작을 설정합니다.
빨대 파라미터도 설명했다.post_텍스트와 이미지를 허용합니다.
controller/post_controller.rbclass PostsController < ApplicationController
def index
@posts = Post.all
end
def new
@post = Post.new
end
def create
@post = Post.new(post_params)
if @post.save #もしセーブしたら
redirect_to root_path #root_pathに戻る
else #それ以外なら
render :new #newのページに戻るよ
end
end
private
#ストロングパラメーター↓
def post_params
params.require(:post).permit(:post_text, :image).merge(user_id: current_user.id)
end
#ストロングパラメーター↑
end
config/routes.rbRails.application.routes.draw do
devise_for :users
get 'posts/index'
root to:'posts#index'
resources :posts #post全てのルーティングを設定
end
뷰 파일 설치
마지막으로 새 투고 화면에 필요한 보기를 설정합니다.완성 보기는 다음 사진입니다.
이렇게 실제 투고하면 데이터베이스에 반영돼 홈페이지로 돌아간다.
view/posts/new.html.erb<h1 class="post_new_title">新規post</h1>
<%= form_with(model: @post, local: true) do |f| %>
<div class="field">
<%= f.label :post_text, "投稿内容" %><br />
<%= f.text_field :post_text %>
</div>
<div class="field">
<%= f.label :image, "画像" %><br />
<%= f.file_field :image %>
</div>
<div class="actions">
<%= f.submit "保存する", class: :form__btn %>
</div>
<% end %>
</div>
훑어보다
투고 내용을 한눈에 보기 위해 each 문장을 사용합니다.
view/index.html.erb<% @posts.each do |post| %>
<%= link_to image_tag(post.image), post_path(post.id) %>
<%= link_to post.post_text, post_path(post.id) %>
<%= link_to "by#{post.user.last_name}", root_path(post.user.id) %>
<% end %>
Reference
이 문제에 관하여(활성 저장 가져오기 방법 [투고 기능 + 이미지 설치와 결합 소개]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ghexcffb/items/b24a5278e7b26a764e75
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
로그인 상태의 사용자가 초상화 텍스트를 투고하여 맨 위에 표시할 수 있도록 합니다.이미지가 ActiveStarage에서 구현됩니다.
실시
post 모델과 테이블을 만듭니다.
단말% rails g model post
마이그레이션 파일에 필요한 열을 추가합니다.이번에는 post _text입니다.이것은 (references형)에서 user를 인용하는 데 사용되는 키도 설명합니다.
db/migrate/xxxxxxxxxxxxx_create_posts.rbclass CreatePosts < ActiveRecord::Migration[6.0]
def change
create_table :posts do |t|
t.string :post_text, null: false
t.references :user, foreign_key: true
t.timestamps
end
end
end
데이터베이스에post표가 존재하는지 확인하기 위해 이전을 실행합니다.
단말% rails db:migrate
연관 설명
후기와 사용자 모델에서 연관을 설명합니다.
models/post.rbclass Post < ApplicationRecord
belongs_to :user
end
model/user.rbclass User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
has_many :posts, dependent: :destroy
end
활성 문자열 배포
Gemfile에서 Gem을 설명하고 설치합니다.
Gemfilegem 'mini_magick'
gem 'image_processing', '~> 1.2'
단말% bundle install
그런 다음 활성 Strage를 설치하고 마이그레이션을 수행합니다.
단말rails active_storage:install
단말rails db:migrate
post모델에서image열과의 관련을 설명합니다.
models/post.rbclass Post < ApplicationRecord
belongs_to :user
has_one_attached :image
end
설정 확인
마지막으로 투고 기능에 맞는 검증을 설정합니다.이번에는 투고 내용의post_텍스트와 이미지가 모두 필요합니다.따라서 양자의 검증을 설정한다.
여러 가지 조건이 있어 구김이 잘 가지 않을 때 다음과 같이 표로 정리하면 오류를 없앨 수 있다.
조건
열명
필수
post_text
◯
image
◯
검증
model/post.rbclass Post < ApplicationRecord
belongs_to :user
has_one_attached :image
validates :post_text, presence: true
validates :image, presence: true
end
작업 및 라우팅 설정
게시물 기능을 설정하고 필요한 작업 및 라우팅을 표시합니다.투고이기 때문에 new와create의 동작을 설정합니다.
빨대 파라미터도 설명했다.post_텍스트와 이미지를 허용합니다.
controller/post_controller.rbclass PostsController < ApplicationController
def index
@posts = Post.all
end
def new
@post = Post.new
end
def create
@post = Post.new(post_params)
if @post.save #もしセーブしたら
redirect_to root_path #root_pathに戻る
else #それ以外なら
render :new #newのページに戻るよ
end
end
private
#ストロングパラメーター↓
def post_params
params.require(:post).permit(:post_text, :image).merge(user_id: current_user.id)
end
#ストロングパラメーター↑
end
config/routes.rbRails.application.routes.draw do
devise_for :users
get 'posts/index'
root to:'posts#index'
resources :posts #post全てのルーティングを設定
end
뷰 파일 설치
마지막으로 새 투고 화면에 필요한 보기를 설정합니다.완성 보기는 다음 사진입니다.
이렇게 실제 투고하면 데이터베이스에 반영돼 홈페이지로 돌아간다.
view/posts/new.html.erb<h1 class="post_new_title">新規post</h1>
<%= form_with(model: @post, local: true) do |f| %>
<div class="field">
<%= f.label :post_text, "投稿内容" %><br />
<%= f.text_field :post_text %>
</div>
<div class="field">
<%= f.label :image, "画像" %><br />
<%= f.file_field :image %>
</div>
<div class="actions">
<%= f.submit "保存する", class: :form__btn %>
</div>
<% end %>
</div>
훑어보다
투고 내용을 한눈에 보기 위해 each 문장을 사용합니다.
view/index.html.erb<% @posts.each do |post| %>
<%= link_to image_tag(post.image), post_path(post.id) %>
<%= link_to post.post_text, post_path(post.id) %>
<%= link_to "by#{post.user.last_name}", root_path(post.user.id) %>
<% end %>
Reference
이 문제에 관하여(활성 저장 가져오기 방법 [투고 기능 + 이미지 설치와 결합 소개]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ghexcffb/items/b24a5278e7b26a764e75
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
% rails g model post
class CreatePosts < ActiveRecord::Migration[6.0]
def change
create_table :posts do |t|
t.string :post_text, null: false
t.references :user, foreign_key: true
t.timestamps
end
end
end
% rails db:migrate
class Post < ApplicationRecord
belongs_to :user
end
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
has_many :posts, dependent: :destroy
end
gem 'mini_magick'
gem 'image_processing', '~> 1.2'
% bundle install
rails active_storage:install
rails db:migrate
class Post < ApplicationRecord
belongs_to :user
has_one_attached :image
end
class Post < ApplicationRecord
belongs_to :user
has_one_attached :image
validates :post_text, presence: true
validates :image, presence: true
end
class PostsController < ApplicationController
def index
@posts = Post.all
end
def new
@post = Post.new
end
def create
@post = Post.new(post_params)
if @post.save #もしセーブしたら
redirect_to root_path #root_pathに戻る
else #それ以外なら
render :new #newのページに戻るよ
end
end
private
#ストロングパラメーター↓
def post_params
params.require(:post).permit(:post_text, :image).merge(user_id: current_user.id)
end
#ストロングパラメーター↑
end
Rails.application.routes.draw do
devise_for :users
get 'posts/index'
root to:'posts#index'
resources :posts #post全てのルーティングを設定
end
<h1 class="post_new_title">新規post</h1>
<%= form_with(model: @post, local: true) do |f| %>
<div class="field">
<%= f.label :post_text, "投稿内容" %><br />
<%= f.text_field :post_text %>
</div>
<div class="field">
<%= f.label :image, "画像" %><br />
<%= f.file_field :image %>
</div>
<div class="actions">
<%= f.submit "保存する", class: :form__btn %>
</div>
<% end %>
</div>
<% @posts.each do |post| %>
<%= link_to image_tag(post.image), post_path(post.id) %>
<%= link_to post.post_text, post_path(post.id) %>
<%= link_to "by#{post.user.last_name}", root_path(post.user.id) %>
<% end %>
Reference
이 문제에 관하여(활성 저장 가져오기 방법 [투고 기능 + 이미지 설치와 결합 소개]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ghexcffb/items/b24a5278e7b26a764e75텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)