Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 너비 우선 탐색
- 코드블럭 테마
- 깊이 우선 탐색
- Quaternion.Euler
- 유니티 오브젝트 풀링
- git-lfs
- 유니티 ResourceManager
- LFS
- 유니티
- ML-Agents
- c++
- Raycast
- LookRotation
- 유니티 머신러닝
- 오브젝트 풀링
- 소스코드 줄번호
- Mathf.Clamp
- 유니티 InputManager
- c++ 문자열 자르기
- LayerMask
- 이진트리
- eulerAngles
- 유니티 시야 가림
- 알고스팟
- 유니티 Rotate
- 유니티 리소스매니저
- InputManager
- 유니티 Vector3
- 유니티 Collision
- unity
Archives
- Today
- Total
무민은귀여워
Rails API + Nuxt.js + Devise-JWT #2 본문
반응형
참고 : https://mgleon08.github.io/blog/2018/07/17/rails-nuxt-jwt/
-> 화면은 nuxt.js 로, 서버단은 rails api 를 이용하는 예제
Part 2: Getting them talking to each other
모델, 및 디비 생성
1 2 3 4 5 6 | docker-compose run backend bash > bin/rails g resource example name:string colour:string > bin/rails db:migrate > bin/rails c > > {"foo" => "green", "bar" => "red", "baz" => "purple"}.each {|n,c| Example.create!(name: n, colour: c)} | cs |
controller 편집
1 2 3 4 5 6 7 | # autheg-backend/app/controllers/examples_controller.rb class ExamplesController < ApplicationController def index examples = Example.all.select(:id, :name, :colour) render json: examples end end | cs |
1 2 3 4 5 6 | # autheg-backend/config/routes.rb Rails.application.routes.draw do scope :api, defaults: { format: :json } do resources :examples end end | cs |
다음 동작을 위해서는 devise Gem이 넣어줄 필요가 있다. (GEM파일에 지정해주고 설치하면 된다.)
1 2 3 4 5 | # autheg-backend/app/controllers/application_controller.rb class ApplicationController < ActionController::API include ActionController::MimeResponds respond_to :json end | cs |
실행예
http://localhost:8080/api/examples
디비에 내용 두번 넣어서 6개가 들어감..
axios & vuetify 설치
1 | docker-compose run frontend yarn add @nuxtjs/axios @nuxtjs/vuetify | cs |
1 2 3 4 5 6 7 8 9 10 | // autheg-frontend/nuxt.config.js modules: [ '@nuxtjs/vuetify', '@nuxtjs/axios' ], axios: { host: 'localhost', port: 8080, prefix: '/api' } | cs |
nuxt.config.js 파일은 기존 코드의 build: 전 위치에 끼워 넣는다. 원본 사이트에서는 이 코드만으로 된다는데 에러남...
화면처리
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | // autheg-frontend/layouts/default.vue <template> <div id="app"> <v-app> <v-toolbar app dark> <v-toolbar-title>Auth example</v-toolbar-title> <v-spacer /> <v-btn icon nuxt href="/"><v-icon>home</v-icon></v-btn> </v-toolbar> <v-content> <v-container fluid> <nuxt/> </v-container> </v-content> </v-app> </div> </template> | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | // autheg-frontend/pages/index.vue <template> <v-layout> <v-flex> <v-list> <v-list-tile v-for="example in examples" :key="example.id" :class="example.colour"> <v-list-tile-content></v-list-tile-content> </v-list-tile> </v-list> </v-flex> </v-layout> </template> <script> export default { data () { return { examples: [] } }, methods: { async updateExamples() { this.examples = await this.$axios.$get('/examples') } }, mounted () { this.updateExamples() } } </script> | cs |
여기까지만 하고 localhost:3000 을 확인해보면 에러가 난다.
JavaScript isn’t allowed to query endpoints on other domains unless those domains set the CORS headers appropriately
고치기 위해서 cors 를 처리해주어야 함.
gem 파일의 코멘트 삭제
1 2 | # autheg-backend/Gemfile gem 'rack-cors' | cs |
cors.rb 파일의 코멘트 삭제
1 2 3 4 5 6 7 8 9 10 11 | # autheg-backend/config/initializers/cors.rb Rails.application.config.middleware.insert_before 0, Rack::Cors do allow do origins 'localhost:3000' # 也可以 * 就是所有 domain 都可以打進來 resource '*', headers: :any, methods: [:get, :post, :put, :patch, :delete, :options, :head] end end | cs |
백엔드 단의 번들 명령어 실행
1 | docker-compose run -u root backend bundle | cs |
컨테이너 재기동
1 2 | ctrl + c docker-compose up | cs |
실행예
반응형
'IT > 각종 강좌들 ~ ' 카테고리의 다른 글
Rails API + Nuxt.js + Devise-JWT #1 (0) | 2018.10.08 |
---|
Comments