【공부 메모】devise와 scaffold를 조합하여 쁘띠 SNS를 만드는 ① 【좌절하지 않는다! 】
이번에 하고 싶은 일
・CRUD를 자동적으로 만들어 주는 scaffold와 로그인 기능을 만들어 주는 devise의 2개를 맞추어 쁘띠 SNS를 만든다.
・로그인한 유저와 투고한 문장을 연결한다.
· 투고한 문장을 로그인 유저만이 편집할 수 있도록 한다.
1. scaffold로 골격을 만든다.
scaffold는 CRUD를 자동으로 만들어 주는 녀석이니까.
편리한 사람이니까.
타이틀을 넣을 수 있는 title 컬럼과 본문을 넣는 body를 만든다.
$ rails g scaffold Post titile:string body:text
2. devise를 추가합니다.
그런 다음 로그인 기능을 구현하기 위해 devise를 구현합니다.
gemfile.rb
#コメントアウトを外す
gem 'therubyracer', platforms: :ruby
#追加する
gem 'devise'
gem 'therubyracer', platforms: :ruby
의 코멘트 아웃을 왜 떼어낼 것인지는 몰랐다. 조사했지만, 어렵고 이해할 수 없었다. 이제, 여기는 나누어서 「그런거야!」라고 하기로 해두자.그리고 저장하고 설치 명령을 입력하는 사람.
$ bundle install
$ rails g devise:install
3. 톱 페이지에서 devise의 로그인 화면이 되도록 라우팅을 만지십시오.
config/routes.rb
root "posts#index"
잘 보면 터미널에 사용법이 쓰여 있네요.
4. devise에 User 모델을 제공
지금 devise를 설치했지만 아직 테이블이 되어 있지 않다.
그래서 User 모델을 추가시킨다.
$ rails g devise User
그리고 여기, 평소의 아레를 입력해 마이그레이트 한다! !
$ rails db:migrate
5. posts 테이블에 user_id 열 추가
여기까지 한 것은
· scaffold에서 Post 테이블을 만들었습니다.
→ Post 테이블은 타이틀과 본문의 2개의 투고 내용을 기록하기 위한 테이블.
· devise로 User 테이블을 작성했습니다.
→User 테이블은 사용자를 기록하는 테이블.
앞으로 하고 싶은 일
· 어느 User가 어느 투고(Post)했는지를 연결한다.
・투고 기사(Post)에 투고자(User)의 id를 연결시키고 싶다.
· posts 테이블에 user_id 열을 추가하고 싶습니다.
실제 구현
$ rails g migration add_user_id_to_posts user_id:integer
그리고
$ rails db:migrate
6. 로그인 기능을 표시하기 위해 view에 기록한다.
app/views/layouts/application.html.erb
<%= csrf_meta_tags %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
<% if user_signed_in? %>
Logged in as <%= current_user.email %>
<%= link_to "ログアウト", destroy_user_session_path, method: :delete %>
<% else %>
<%= link_to "新規登録", new_user_registration_path %> |
<%= link_to "ログイン", new_user_session_path %>
<% end %>
User 객체를 다루기 때문에 routes에 기술한다.
config/routes.rb
resources :users
잘 모르겠어요. 잘 모르겠지만, 이것을 기술해 두자.
7. 서버 시작 후 확인
오, 신규 등록과 로그인이 구현된 scaffold가 나타났다! !
실제로 기술해 본다.
할 수 있었다. 로그인 기능+투고&편집 기능이 붙었다.
하지만, 이것이라면 누구나 게시물을 편집하거나 할 수 버리는 상태. 로그인 기능을 구현하는 의미가 전무.
이번에는 로그인한 사용자의 투고가 표시되어 그것을 괴롭히는 시스템을 만들지 않으면 안된다.
과거의 녀석
【공부 메모】scaffold를 사용 【좌절하지 않는다! 】
htps : // 이 m / 타카 토시 0905 / ms / 208363 bd07b849cf5f4
【공부 메모】devise를 실장시키는 ①【좌절하지 않는다! 】
htps : // 이 m/타카토시 0905/이고 ms/d39832df81f3c6550b42
【공부 메모】devise를 실장시킨다②【좌절하지 않는다! 】
htps : // 이 m/타카토시 0905/이고 ms/db b303900f79f1208585
【공부 메모】devise를 실장시킨다③【좌절하지 않는다! 】
htps : // 코 m / 타카 토시 0905 / ms / 6f7 73 아다 9307657d679
【공부 메모】devise를 실장시키는 ④【좌절하지 않는다! 】
htps : // 코 m / 타카시 0905 / ms / 25 490 35 495739f
【공부 메모】 어소시에이션 할 수 있도록 한다! 【좌절하지 않는다! 】
htps : // m / 타카 토시 0905 / ms / 1 ~ f 또는 5b4 a 5 f d4b7
Reference
이 문제에 관하여(【공부 메모】devise와 scaffold를 조합하여 쁘띠 SNS를 만드는 ① 【좌절하지 않는다! 】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takatoshi0905/items/a39b36ed4720880d4b59텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)