1. 메인 컨트롤러 생성 및 라우트 설정
rails g controller home index
config/routes.rb
1 | root 'home#index' |
2. 디바이스 젬 설치하기
gemfile
1 | gem 'devise' |
bundle install
rails generate devise:install
rails g devise user
3. 기본 설정하기
db/migrate/devise
1 | t.string :email, unique: true |
#unique 중복 피하도록
rake db:migrate
app/model/user.rb
1 2 3 4 5 6 | before_save {self.email = email.downcase} #이메일을 저장하기 전, 주소를 소문자로 변환 VALID_EMAIL_REGEX = /\A([\w+\-]\.?)+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/i #정규식을 이용해 이메일 형식을 지정 validates :name, presence: true, length: {maximum: 50} #이름과 이메일이 반드시 존재하고 50,255자를 넘지 않게하는 유효성검사 validates :email, presence: true, length: {maximum: 255}, #validates (존재를 확인), presence(오직 하나만 존재), format: {with: VALID_EMAIL_REGEX}, uniqueness: {case_sensitive: false} #uniqueness(이메일소문자) | cs |
4. 뷰파일 설정하기
rails g devise:views users
config/initializers/devise.rb
10번째줄
1 | config.scoped_views = true | cs |
index.html.erb
1 2 3 4 5 6 7 8 9 | <% if user_signed_in? %> <%= current_user.email %> <%= link_to "로그아웃", destroy_user_session_path, method: "DELETE" %> <% else %> <%= link_to "로그인", new_user_session_path %> <%= link_to "회원가입", new_user_registration_path %> <% end %> | cs |
config/initializers/devise.rb
248번째 줄
1 | config.sign_out_via = :get | cs |
5. 컨트롤러 생성하기
rails g devise:controllers users
6. 컬럼추가하기
rails g migration AddUserattributeToUsers username:string userage:integer usersex:string admin:boolean
# add 마이그레이션 이름 to 모델명
rake db:migrate
app/views/users/registrations/new.html.erb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <div class="field"> <%= f.label :이름 %> <br /> <%= f.text_field :username, autofocus :true %> </div> <%= f.label :나이 %> <br /> <%= f.text_field :userage, autofocus :true %> </div> <p> 성별 </p> <label class="radio_button">남자 <%= f.radio_button :usersex, '남자', checked: true %> </label> <label class="radio_button">여자 <%= f.radio_button :usersex, '여자', checked: true %> </label> | cs |
*form_for tag 도움말
app/controllers/application_controller.rb
1 2 3 4 5 6 | 맨윗줄에 추가 : before_action :configure_permitted_parameters, if :devise_controller? def configure_permitted_parameters devise_parameter_sanitizer.permit(:sign_up, keys: [:username, :userage, :usersex, :admin]) end | cs |
'Wep Develop > Ruby on Rails' 카테고리의 다른 글
[Ruby on Rails] Scaffold 이용해 게시판+댓글구현 (0) | 2017.08.13 |
---|---|
[Ruby on Rails] mail gun을 이용한 이메일 전송 구현 (+figaro를 이용한 환경변수 설정) (2) | 2017.08.13 |