【공부 메모】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

좋은 웹페이지 즐겨찾기