[Ruby on Rails] refile을 통해 여러 이미지 업로드
목표
개발 환경
ruby 2.5.7
Rails 5.2.4.3
OS: macOS Catalina
전제 조건
※ ▶◯◯을 선택하면 설명 등이 나온다
잘 모르는 상황의 참고가 되었으면 좋겠습니다.
전제는 발언 기능을 실현할 수 있다는 것이다.
※ 참조로그인한 사용자만 수행할 수 있는 발언 기능
물줄기
1gem 도입
두 테이블 작성
3model 편집
편집 4controller
5 뷰 편집
※ 보충[Ruby on Rails] refile의 투고 이미지 미리 보기 기능
영입
Gemfilegem 'refile', require: 'refile/rails', github: 'refile/refile'
gem 'refile-mini_magick'
단말기$ bundle install
테이블 작성
이번에는 포즈 모델과 포즈.이미지 모델을 작성합니다.
각 열은 아래와 같다.
db/schema.rb create_table "post_images", force: :cascade do |t|
t.integer "post_id", null: false
t.string "image_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["post_id"], name: "index_post_images_on_post_id"
end
create_table "posts", force: :cascade do |t|
t.string "title", null: false
t.string "content", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
모델 편집
app/models.post.rbclass Post < ApplicationRecord
has_many :post_images, dependent: :destroy
accepts_attachments_for :post_images, attachment: :image
end
app/models.post_image.rbclass PostImage < ApplicationRecord
belongs_to :post
attachment :image
end
controller 편집
app/controllers/posts_controller.rbclass Admins::PostsController < ApplicationController
...
private
def post_params
params.require(:post).permit(:title, :content, post_images_images: [])
end
end
보충[post images images:[]]
여러 이미지 id가 되기 위해 []로 배열하여 전달합니다.
편집view(새 발언)
<%= f.attachment_field :post_images_images, multiple: true %>
여기 멀티플: 사진 쓰는 거 잊지 마세요.
이것은 여러 개의 이미지 투고에 필요한 것이다.
app/views/posts/new.html.erb<%= form_for(@post, url: posts_path) do |f| %>
<table>
<tbody>
<tr>
<td>画像</td>
<td><%= f.attachment_field :post_images_images, multiple: true %></td>
</tr>
<tr>
<td>タイトル</td>
<td><%= f.text_field :title, autofocus: true %></td>
</tr>
<tr>
<td>内容</td>
<td><%= f.text_area :content %></td>
</tr>
<tr>
<td></td>
<td><%= f.submit "追加", class: "btn btn-primary" %></td>
</tr>
</tbody>
</table>
<% end %>
편집view(발언 상세)
여러 개의 그림이기 때문에 each 문장이 필요합니다.
첫 장만 보여주고 싶으면...
<% @post.post_images.first(1).each do |image| %>
그럼 돼.
app/views/posts/show.html.erb<% if @post.post_images.present? %>
<% @post.post_images.each do |image| %>
<%= attachment_image_tag image, :image, class: "default_image" %>
<% end %>
<% else %>
画像はありません。
<% end %>
투고 방법
여러 이미지를 업로드하려면 [파일 선택]을 선택한 후
[shift+] 또는 [ctrl+]를 클릭하여 이미지 선택
올려주세요.
참고 자료
Reference
이 문제에 관하여([Ruby on Rails] refile을 통해 여러 이미지 업로드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/japwork/items/dcca7ead2d3c334b124c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
ruby 2.5.7
Rails 5.2.4.3
OS: macOS Catalina
전제 조건
※ ▶◯◯을 선택하면 설명 등이 나온다
잘 모르는 상황의 참고가 되었으면 좋겠습니다.
전제는 발언 기능을 실현할 수 있다는 것이다.
※ 참조로그인한 사용자만 수행할 수 있는 발언 기능
물줄기
1gem 도입
두 테이블 작성
3model 편집
편집 4controller
5 뷰 편집
※ 보충[Ruby on Rails] refile의 투고 이미지 미리 보기 기능
영입
Gemfilegem 'refile', require: 'refile/rails', github: 'refile/refile'
gem 'refile-mini_magick'
단말기$ bundle install
테이블 작성
이번에는 포즈 모델과 포즈.이미지 모델을 작성합니다.
각 열은 아래와 같다.
db/schema.rb create_table "post_images", force: :cascade do |t|
t.integer "post_id", null: false
t.string "image_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["post_id"], name: "index_post_images_on_post_id"
end
create_table "posts", force: :cascade do |t|
t.string "title", null: false
t.string "content", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
모델 편집
app/models.post.rbclass Post < ApplicationRecord
has_many :post_images, dependent: :destroy
accepts_attachments_for :post_images, attachment: :image
end
app/models.post_image.rbclass PostImage < ApplicationRecord
belongs_to :post
attachment :image
end
controller 편집
app/controllers/posts_controller.rbclass Admins::PostsController < ApplicationController
...
private
def post_params
params.require(:post).permit(:title, :content, post_images_images: [])
end
end
보충[post images images:[]]
여러 이미지 id가 되기 위해 []로 배열하여 전달합니다.
편집view(새 발언)
<%= f.attachment_field :post_images_images, multiple: true %>
여기 멀티플: 사진 쓰는 거 잊지 마세요.
이것은 여러 개의 이미지 투고에 필요한 것이다.
app/views/posts/new.html.erb<%= form_for(@post, url: posts_path) do |f| %>
<table>
<tbody>
<tr>
<td>画像</td>
<td><%= f.attachment_field :post_images_images, multiple: true %></td>
</tr>
<tr>
<td>タイトル</td>
<td><%= f.text_field :title, autofocus: true %></td>
</tr>
<tr>
<td>内容</td>
<td><%= f.text_area :content %></td>
</tr>
<tr>
<td></td>
<td><%= f.submit "追加", class: "btn btn-primary" %></td>
</tr>
</tbody>
</table>
<% end %>
편집view(발언 상세)
여러 개의 그림이기 때문에 each 문장이 필요합니다.
첫 장만 보여주고 싶으면...
<% @post.post_images.first(1).each do |image| %>
그럼 돼.
app/views/posts/show.html.erb<% if @post.post_images.present? %>
<% @post.post_images.each do |image| %>
<%= attachment_image_tag image, :image, class: "default_image" %>
<% end %>
<% else %>
画像はありません。
<% end %>
투고 방법
여러 이미지를 업로드하려면 [파일 선택]을 선택한 후
[shift+] 또는 [ctrl+]를 클릭하여 이미지 선택
올려주세요.
참고 자료
Reference
이 문제에 관하여([Ruby on Rails] refile을 통해 여러 이미지 업로드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/japwork/items/dcca7ead2d3c334b124c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
1gem 도입
두 테이블 작성
3model 편집
편집 4controller
5 뷰 편집
※ 보충[Ruby on Rails] refile의 투고 이미지 미리 보기 기능
영입
Gemfilegem 'refile', require: 'refile/rails', github: 'refile/refile'
gem 'refile-mini_magick'
단말기$ bundle install
테이블 작성
이번에는 포즈 모델과 포즈.이미지 모델을 작성합니다.
각 열은 아래와 같다.
db/schema.rb create_table "post_images", force: :cascade do |t|
t.integer "post_id", null: false
t.string "image_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["post_id"], name: "index_post_images_on_post_id"
end
create_table "posts", force: :cascade do |t|
t.string "title", null: false
t.string "content", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
모델 편집
app/models.post.rbclass Post < ApplicationRecord
has_many :post_images, dependent: :destroy
accepts_attachments_for :post_images, attachment: :image
end
app/models.post_image.rbclass PostImage < ApplicationRecord
belongs_to :post
attachment :image
end
controller 편집
app/controllers/posts_controller.rbclass Admins::PostsController < ApplicationController
...
private
def post_params
params.require(:post).permit(:title, :content, post_images_images: [])
end
end
보충[post images images:[]]
여러 이미지 id가 되기 위해 []로 배열하여 전달합니다.
편집view(새 발언)
<%= f.attachment_field :post_images_images, multiple: true %>
여기 멀티플: 사진 쓰는 거 잊지 마세요.
이것은 여러 개의 이미지 투고에 필요한 것이다.
app/views/posts/new.html.erb<%= form_for(@post, url: posts_path) do |f| %>
<table>
<tbody>
<tr>
<td>画像</td>
<td><%= f.attachment_field :post_images_images, multiple: true %></td>
</tr>
<tr>
<td>タイトル</td>
<td><%= f.text_field :title, autofocus: true %></td>
</tr>
<tr>
<td>内容</td>
<td><%= f.text_area :content %></td>
</tr>
<tr>
<td></td>
<td><%= f.submit "追加", class: "btn btn-primary" %></td>
</tr>
</tbody>
</table>
<% end %>
편집view(발언 상세)
여러 개의 그림이기 때문에 each 문장이 필요합니다.
첫 장만 보여주고 싶으면...
<% @post.post_images.first(1).each do |image| %>
그럼 돼.
app/views/posts/show.html.erb<% if @post.post_images.present? %>
<% @post.post_images.each do |image| %>
<%= attachment_image_tag image, :image, class: "default_image" %>
<% end %>
<% else %>
画像はありません。
<% end %>
투고 방법
여러 이미지를 업로드하려면 [파일 선택]을 선택한 후
[shift+] 또는 [ctrl+]를 클릭하여 이미지 선택
올려주세요.
참고 자료
Reference
이 문제에 관하여([Ruby on Rails] refile을 통해 여러 이미지 업로드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/japwork/items/dcca7ead2d3c334b124c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
gem 'refile', require: 'refile/rails', github: 'refile/refile'
gem 'refile-mini_magick'
$ bundle install
이번에는 포즈 모델과 포즈.이미지 모델을 작성합니다.
각 열은 아래와 같다.
db/schema.rb
create_table "post_images", force: :cascade do |t|
t.integer "post_id", null: false
t.string "image_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["post_id"], name: "index_post_images_on_post_id"
end
create_table "posts", force: :cascade do |t|
t.string "title", null: false
t.string "content", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
모델 편집
app/models.post.rbclass Post < ApplicationRecord
has_many :post_images, dependent: :destroy
accepts_attachments_for :post_images, attachment: :image
end
app/models.post_image.rbclass PostImage < ApplicationRecord
belongs_to :post
attachment :image
end
controller 편집
app/controllers/posts_controller.rbclass Admins::PostsController < ApplicationController
...
private
def post_params
params.require(:post).permit(:title, :content, post_images_images: [])
end
end
보충[post images images:[]]
여러 이미지 id가 되기 위해 []로 배열하여 전달합니다.
편집view(새 발언)
<%= f.attachment_field :post_images_images, multiple: true %>
여기 멀티플: 사진 쓰는 거 잊지 마세요.
이것은 여러 개의 이미지 투고에 필요한 것이다.
app/views/posts/new.html.erb<%= form_for(@post, url: posts_path) do |f| %>
<table>
<tbody>
<tr>
<td>画像</td>
<td><%= f.attachment_field :post_images_images, multiple: true %></td>
</tr>
<tr>
<td>タイトル</td>
<td><%= f.text_field :title, autofocus: true %></td>
</tr>
<tr>
<td>内容</td>
<td><%= f.text_area :content %></td>
</tr>
<tr>
<td></td>
<td><%= f.submit "追加", class: "btn btn-primary" %></td>
</tr>
</tbody>
</table>
<% end %>
편집view(발언 상세)
여러 개의 그림이기 때문에 each 문장이 필요합니다.
첫 장만 보여주고 싶으면...
<% @post.post_images.first(1).each do |image| %>
그럼 돼.
app/views/posts/show.html.erb<% if @post.post_images.present? %>
<% @post.post_images.each do |image| %>
<%= attachment_image_tag image, :image, class: "default_image" %>
<% end %>
<% else %>
画像はありません。
<% end %>
투고 방법
여러 이미지를 업로드하려면 [파일 선택]을 선택한 후
[shift+] 또는 [ctrl+]를 클릭하여 이미지 선택
올려주세요.
참고 자료
Reference
이 문제에 관하여([Ruby on Rails] refile을 통해 여러 이미지 업로드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/japwork/items/dcca7ead2d3c334b124c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
class Post < ApplicationRecord
has_many :post_images, dependent: :destroy
accepts_attachments_for :post_images, attachment: :image
end
class PostImage < ApplicationRecord
belongs_to :post
attachment :image
end
app/controllers/posts_controller.rb
class Admins::PostsController < ApplicationController
...
private
def post_params
params.require(:post).permit(:title, :content, post_images_images: [])
end
end
보충[post images images:[]]여러 이미지 id가 되기 위해 []로 배열하여 전달합니다.
편집view(새 발언)
<%= f.attachment_field :post_images_images, multiple: true %>
여기 멀티플: 사진 쓰는 거 잊지 마세요.
이것은 여러 개의 이미지 투고에 필요한 것이다.
app/views/posts/new.html.erb<%= form_for(@post, url: posts_path) do |f| %>
<table>
<tbody>
<tr>
<td>画像</td>
<td><%= f.attachment_field :post_images_images, multiple: true %></td>
</tr>
<tr>
<td>タイトル</td>
<td><%= f.text_field :title, autofocus: true %></td>
</tr>
<tr>
<td>内容</td>
<td><%= f.text_area :content %></td>
</tr>
<tr>
<td></td>
<td><%= f.submit "追加", class: "btn btn-primary" %></td>
</tr>
</tbody>
</table>
<% end %>
편집view(발언 상세)
여러 개의 그림이기 때문에 each 문장이 필요합니다.
첫 장만 보여주고 싶으면...
<% @post.post_images.first(1).each do |image| %>
그럼 돼.
app/views/posts/show.html.erb<% if @post.post_images.present? %>
<% @post.post_images.each do |image| %>
<%= attachment_image_tag image, :image, class: "default_image" %>
<% end %>
<% else %>
画像はありません。
<% end %>
투고 방법
여러 이미지를 업로드하려면 [파일 선택]을 선택한 후
[shift+] 또는 [ctrl+]를 클릭하여 이미지 선택
올려주세요.
참고 자료
Reference
이 문제에 관하여([Ruby on Rails] refile을 통해 여러 이미지 업로드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/japwork/items/dcca7ead2d3c334b124c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<%= form_for(@post, url: posts_path) do |f| %>
<table>
<tbody>
<tr>
<td>画像</td>
<td><%= f.attachment_field :post_images_images, multiple: true %></td>
</tr>
<tr>
<td>タイトル</td>
<td><%= f.text_field :title, autofocus: true %></td>
</tr>
<tr>
<td>内容</td>
<td><%= f.text_area :content %></td>
</tr>
<tr>
<td></td>
<td><%= f.submit "追加", class: "btn btn-primary" %></td>
</tr>
</tbody>
</table>
<% end %>
여러 개의 그림이기 때문에 each 문장이 필요합니다.
첫 장만 보여주고 싶으면...
<% @post.post_images.first(1).each do |image| %>
그럼 돼.
app/views/posts/show.html.erb
<% if @post.post_images.present? %>
<% @post.post_images.each do |image| %>
<%= attachment_image_tag image, :image, class: "default_image" %>
<% end %>
<% else %>
画像はありません。
<% end %>
투고 방법
여러 이미지를 업로드하려면 [파일 선택]을 선택한 후
[shift+] 또는 [ctrl+]를 클릭하여 이미지 선택
올려주세요.
참고 자료
Reference
이 문제에 관하여([Ruby on Rails] refile을 통해 여러 이미지 업로드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/japwork/items/dcca7ead2d3c334b124c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([Ruby on Rails] refile을 통해 여러 이미지 업로드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/japwork/items/dcca7ead2d3c334b124c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)