티스토리 뷰

해당 글은 https://blog.naver.com/kbs4674/221041490582 로 부터 게시글이 이전되었습니다.

 

그동안 저희가 devise를 연계한 홈페이지 회원관련 DB를 사용할 때는, ID(메일주소)가 곧 닉네임이었습니다.

그런데 저는 이 방식에서 '닉네임'이라는 새로운 DB 테이블 공간을 생성을 하고, 게시글 작성 등 때 보여질 때, 메일주소 대신 닉네임이 보여지는 법, '오늘의 한마디'에 대한 글을 작성하는 법에 대해서 공유하고자 합니다.


 참고 

1. Gem : devise를 이미 사용하고 있다는 가정하에 이 글을 작성합니다! [ devise Gem 설치법 클릭 ]

2. Scaffold CRUD를 기준으로 설명합니다. [클릭]


 

  • Users 테이블에 새로운 컬럼 추가

 참고  해당 예시에서는 Devise에서 nickname(닉네임), description(오늘의 한마디) 컬럼에 대한 추가를 예시로 설명합니다.

 

1. Users 테이블에 새로운 에트리뷰트(컬럼)를 추가합니다.

# 닉네임
rails g migration add_nickname_to_user nickname:string

# 오늘의 한마디
rails g migration add_description_to_user description:text

 

2.  app/views/devise/registrations  폴더에 있는  new.html.erb  (회원가입 페이지)와  edit.html.erb  (회원정보 수정 페이지)열람 후, 적절한 위치에 nickname과 description에 대한 Text field넣습니다.

...
 
<div>
    <%= f.label "닉네임" %>
    <%= f.text_field :nickname, :required => true %><br/>
</div>
 
<div>
    <%= f.label "한 마디" %>
    <%= f.text_field :description %><br/>
</div>
 
...

 

3.  app/controllers  폴더에 있는  application_controller.rb  파일을 열람 후, 다음 내용을 추가해줍니다.

 회원정보 수정 시, 내용이 수정되게 하기 위함임, 이 작업을 안하면 Devise 정보 수정 때 수정된 내용이 적용이 안됨.

class ApplicationController < ActionController::Base
  before_action :configure_permitted_parameters, if: :devise_controller?
  
  protected
 
  def configure_permitted_parameters
    added_attrs = [:nickname, :description, :email, :password, :password_confirmation, :remember_me]
    
    devise_parameter_sanitizer.permit :sign_up, keys: added_attrs
    devise_parameter_sanitizer.permit :account_update, keys: added_attrs
  end
end

 

4. 닉네임 작성에 있어 중복체크를 하고싶은 경우, user 모델파일에 가서 다음 내용을 추가해주세요.

## app/models/post.rb

validates_uniqueness_of :nickname

 

5. 여기서 잠시 DB에 대해 작업좀 합시다!

DB/스키마를 최신화 해주세요.

rake db:migrate

그리고 이어서 회원가입 하시고 회원정보 변경 가셔서 닉네임과 오늘의 한마디가 제대로 적용되었는지,

회원정보 수정에서 수정된 내용이 잘 적용되는지 체크해보세요!

 

6. 만약 View 파일에서 나의 nickname 및 description을 노출하고 싶다면 다음과 같이 입력해주면 됩니다. 

<%= current_user.nickname %>
<%= current_user.description %>

 

 

  • 자료 참고

1. 공부하는 다람쥐 [클릭]

2. 닉네임 중복검사 체크 관련 [클릭]

3. tring, text Form 외 check-box 등 입력Form 추가 방법 [클릭]

 

루비온 레일즈 Ruby on Rails ROR

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함