ails 제작진의 기록 - 초보자를 위한 ①
비망록으로 쓰다.
* 이 기사를 읽으신 분들, 특히 초보자분들께는 조금이나마 도움이 되셨으면 하는 마음에 이렇게 글을 쓰게 되었습니다.
그러나 우리측은 초보자이므로 이 보도가 완벽하지 않다는 전제로 m()를 읽었으면 합니다.m
구상 독자층: 경험이 없다
방금 Rails 튜토리얼을 마친 분.
그룹을 만들려고 하는데 전혀 경험이 없는 사람
0. 조합의 구상
구글 드라이브를 사용해서 어떤 조합을 만들고 싶은지 대충 언어화했습니다.
스스로 이상법을 정돈할 수도 있고, 자신의 생각을 스승과 공유하고 조언을 받을 수도 있다.
Microsoft office의 워드와 Excel처럼 사용하기 쉽습니다^^
편리하고 무료로 추천해드립니다^^
이 때 관리자와 함께 사용하는gem도 확인하고 기재했습니다.
예를 들어 "일치 서비스"를 만들고 싶어서 "로그인 기능"과 "검색 기능"이 필요합니다.
이 경우'로그인 기능 railsgem','검색 기능 railsgem'등을 검색해 평가가 잘 된gem을 찾아 관리자에게 공유했다.
*gem의 사용을 결정하는 참고 문장
로그인 기능gem
https://qiita.com/Orangina1050/items/a16e655519a60f35b394
검색 기능gem
https://qiita.com/mochikichi321/items/5c9630c5d87b47130942
1. DB 디자인
나는 카코에서 데이터베이스를 설계했다.
카카오는 초보자를 위한 DB 디자인·ER 그림 제작의 도구로 호평받았다.
https://cacoo.com/app/p/recent
디자인할 때 아래 사이트를 참고하여 이해하기 쉽습니다^^
https://it-koala.com/entity-relationship-diagram-1897
(하지만 저는 상술한 사이트만 보면 이해가 안 돼서 다른 검색 순위 상위 사이트도 참고했습니다^^;)
결국 이런 느낌~
2. DB제작-'devise'의 활용-구매자와 판매자의 DB제작
DB의 디자인이 OK되자 DB 제작에 들어갔다.
응용 프로그램 이름
새 응용 프로그램을 만들고 다음을 클릭합니다.
rails g controller .......
DB를 본격적으로 제작했다.
많은 사람들이 User 모델과 로그인 기능을 만들 것이라고 생각합니다.
"devise"를 사용한다면 아래 사이트를 추천합니다.
그러나 상기 사이트만 있다면'usename'을 만들지 않기 때문에 오류가 발생할 수 있습니다.
다음 페이지를 참조하여usename을 생성하면 오류가 사라집니다.
* 참고로 매칭 서비스를 사용해야 하며 "User"(구매자) 외에 "판매자"를 제작해야 합니다.그때 아래의 해설 보도는 매우 참고가 되었다.
https://qiita.com/Yama-to/items/54ab4ce08e126ef7dade
3. DB-상품정보-외부키 만들기
User와 Saller의 DB를 제작한 후 다른 데이터의 DB도 제작을 시작했습니다^^
rails g model <テーブル名>
그리하여class Createテーブル名 < ActiveRecord::Migration[5.2]
def change
create_table :vessels do |t|
t.timestamps
end
end
end
마이그레이션 파일을 생성할 수 있습니다^^마이그레이션 파일에 직접 열을 작성하여 DB를 완성했습니다.
이번엔 kind:string 등, rails db:migrate 추가.
db/migrate/20191123091949_create_vessels.rb
class CreateVessels < ActiveRecord::Migration[5.2]
def change
create_table :vessels do |t|
t.string :kind =>ここを追加!!!
t.timestamps
end
end
end
rails db:migrate
근데 이맘때 외부 열쇠 놓는 거 까먹었지...판매자가 상품을 발표하는 시스템이기 때문에 판매자와 상품을 연결할 필요가 있다.
이 경우 기존 마이그레이션 파일을 다시 작성하여 DB를 수정하면 마이그레이션 파일이 증가하지 않고 쉽게 만들 수 있습니다^^
class CreateVessels < ActiveRecord::Migration[5.2]
def change
create_table :vessels do |t|
t.references :saller, null: false, foreign_key: true <=ここを追加!!!
t.string :kind
t.timestamps
end
end
end
rails db:migrate:reset
리셋이면 가입자 등은 사라지지만 표를 수정하고 싶은 경우도 많아서 편리한 지령이네요^^마이그레이션 파일과 잘못된 DB를 만들 때 다음과 같은 기사는 매우 참고가 된다.
4. DB-거래 페이지 만들기 - 대화실 만들기
● Flag의 사용
사이트와 일치하는 상황에서 구매자는 판매자에게 상품의 상태를 물어보고 가격 인하 협상을 하려고 한다.판매자는 견적서와 증명서 등을 구매자에게 연락하면 편리하다.그래서 이번에는 라인 같은 채팅방이 필요하다.
이 대화방은 구매자가 상품 페이지의'문의'에서 문의 메시지를 보낼 때 만들어졌다.이런 상황에서 모든 정보가 발송자인지 수신자인지 식별될 수 있도록 표 구조를 구축해야 한다.
이제 Flag이 유효합니다.
이번에는 발송자 플래그를 사용했습니다.
class CreateDeals < ActiveRecord::Migration[5.2]
def change
create_table :deals do |t|
t.boolean :send_flag, default: false
end
end
end
Flag은 메일 발송자를 구분하는 매우 효과적인 수단이다.트루와false는 1이나 0으로 관리되기 때문에 이름(string 등)으로 발송자를 관리하는 등 검색 속도 비율이 더 빠르다.5. 이미지 업로드 기능
또 User, 판매상, 상품설명 페이지에 이미지 기능을 업로드해야 하는데, 이번에는 아래gem을 사용하기로 했다.
gem 'carrierwave',
gem 'mini_magick',
gem 'fog-aws',
Rails 튜토리얼도 있어요^^조사 결과'fog-aws'가'fog'보다 더 인기가 많고 동작도 원활한 것으로 나타났다.
계속...
Reference
이 문제에 관하여(ails 제작진의 기록 - 초보자를 위한 ①), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Yuki0531/items/d948d2af298a50a0e9b5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)