본문 바로가기
반응형

Back-End/Ruby10

Rails - 데이터 저장시에 함수 실행하기 가끔 데이터를 저장함과 동시에 어떠한 확인 절차 혹은 그에 따른 어떠한 행위가 실행이 되어야 하는 경우가 있습니다. Rails 에서는 해당 기능들을 어떻게 구현하는지 간단하게 설명하겠습니다  해당 기능은 "데이터"가 저장이 되었을때 이므로, 일반적은 controller마다 전부 작성해서 관리하는 방식이 아닌, model 에서 해당 테이블에 대한 기능을 짜두는 방식으로 개발해야 합니다 Rails 공식 active record callback 가이드 문서https://guides.rubyonrails.org/active_record_callbacks.html Active Record Callbacks — Ruby on Rails GuidesActive Record CallbacksThis guide teac.. 2024. 10. 17.
rails, ruby 역순 정렬, 변수 역순 each문 rails 에서 정렬을 하여 가져오는 방법은 아주 간단합니다 week 라는 필드의 값이 작은 것 부터 정렬을 해서 가져오는 방법입니다 @my_data = MyData.where(:param_id => @search_param.param_id).order('week') 그렇다면 week 라는 필드의 값이 큰 ㄱ덧 부터 정렬을 해서 가져오는 방법은? @my_data = MyData.where(:param_id => @search_param.param_id).order('week desc') 이렇듯 변수에 저장하는 방법을 알아보았습니다. 하지만 우리가 생각하는 것은, 일단 작은 것 부터 정렬을 해서 가져와서 사용하다가 한 곳에서만 역순으로 가져오고 싶다면, 변수를 두 번을 사용해야 하는 것일까요? 아닙니다. .. 2024. 1. 2.
관련 데이터 필터링: Ruby on Rails에서 두 번의 조인을 활용한 방법 A belongs_to B B belongs_to C 의 관계를 만족하는 3개의 테이블이 있을 때에 A 테이블의 정보들을 가져올 때에 C 의 필드를 기준으로 필터링 하여 가져오고 싶은 경우가 있다. 여기서 C 의 c라는 필드의 값이 1 인 것만 가져오고싶은 경우의 1. 오류가 발생하는 쿼리문 2. 올바른 쿼리문 두 경우의 코드를 드리겠습니다 1. 오류가 발생하는 쿼리문 A.joins(:B).joins(:C).where('C.c = 1') → 첫 번째 코드 대로 한다면, A 와 C 의 다이렉트 관계를 찾아 조인을 시도해요. 하지만 B 와 C 의 관계가 명시적으로 정의가 되어있지 않았으니 Rails 는 이 관계를 인식하지 못할 수 있어요 2. 올바른 쿼리문 A.joins(:B).joins(B: :C).whe.. 2023. 9. 15.
Rails 오류 "You have already activated... " 해결하기 `check_for_activated_spec!': You have already activated activesupport 7.0.7.2, but your Gemfile requires activesupport 6.1.7.6. Prepending `bundle exec` to your command may solve this. (Gem::LoadError) 이런 오류가 발생하기 시작했다... Gemfile.lock 을 지우고 다시 bundle install 해도 안되는 경우! 가끔 bin/rails 오류나 각종 터미널 상의 오류, 특정 gem 설치 이후 오류들이 발생할때마다 하나를 고치면 파생된 다른 오류들이 연달아 생기곤 합니다.. 물론 rails 만의 문제는 아닙니다ㅋㅋ 저는 gem 을 설치하고 R.. 2023. 9. 6.
rails i18n 하는 방법, rails 언어처리 (5분 내외) rails 언어처리 방법에 대해서 한번 포스팅을 해보려 합니다. 학생때야 하나의 언어로 처리를 하였겠지만, 본격적으로 실무를 하게 될 때면, 여러 가지의 언어를 동시에 사용해야 하는 경우가 생깁니다. 과연 rails 에서는 이 부분을 어떻게 처리하는지 코드와 함께 알아보도록 하겠습니다. 1. i18n(다중언어처리)를 위한 gem 을 설치합니다 루트 폴더 부분의 Gemlfile을 열어 한 줄을 추가해줍니다 # locale gem 'rails-i18n' gem을 설치했으므로 터미널에서 bundle i 를 실행해줍니다 2. app/controllers/application_controller.rb 파일에 언어 세팅을 합니다 def set_locale I18n.locale = params[:locale] || .. 2022. 12. 8.
Rails CRUD - 데이터 저장이 잘 되었는지 확인하는 방법 def saveCheck # NewData 라는 테이블이 있다고 가정합니다 new_data = NewData.new new_data.title = "새로 만드는 데이터" new_data.status = 0 new_data.save # 데이터가 안정적으로 잘 들어갔는지 확인하는 if new_data.save puts "데이터가 안정적으로 만들어졌습니다" # 데이터가 잘 들어가지 않은 경우 어떤것이 오류인지 오류코드를 왁인 else # 오류가 생긴다면 오류 내용을 전부 찍어 보기 puts new_data.errors.full_messages end end + puts로 찍어본 로그는 rails s 를 띄운 서버 터미널에서 보실 수 있습니다 2022. 10. 3.
(해결 방법) rails devise sign_up 오류 devise sign up error Rails 에는 정말 많은 gem 들이 있습니다. 이 중 웹사이트를 개발할 때에 가장 많이, 그리고 가장 기본적으로 사용이되는 회원 관리 부분을 볼 것입니다. Admin을 이야기 하는 것이 아니라, 회원 가입, 로그인, 로그아웃 등을 구현할 것입니다. 여기서 많은 오류들을 만나게 될텐데, 천천히 잘 따라만 오시면 됩니다 로그인, 회원가입 페이지 만들기 1. blog 라는 이름의 프로젝트를 생성할 것입니다 $ rails new blog 2. Devise 라는 회원가입, 로그인 기능 gem 을 설치합니다 $ bundle add devise 3. 번들을 추가 했으니 설치를 합니다 $ rails g devise:install 4. User 라는 이름으로 devise 만들되, 저는 추가로 role(권한) 필드를 .. 2022. 5. 24.
(해결) LoadError: cannot load such file -- sass Ruby on rails 개발 중 admin 페이지를 함께 만들기 위해 devise 라는 gem과 activeadmin 이라는 gem 을 설치했습니다. 그런데 bundle install 을 하고 다시 서버를 보았더니 LoadError: cannot load such file -- sass 이런 문구가 떳습니다. 당황하였지만, 여러 해결 방법을 찾아본 결과 예전 버전들에서는 없었던 오류가 rails 버전이 높은 것을 사용했더니 나더군요. 해결 방법 gem 'sass-rails' 해당 잼을 추가하고, bundle을 한 후 서버를 control + c 로 종료한 후 rails s 로 다시 켜봤습니다 잘 뜹니다! sass-rails 를 사용하니 오류가 있다던 파일이 잘 돌아갔습니다. 다른 파일을 수정할 것이 아.. 2022. 5. 19.
루비 온 레일즈 rails Gem 설치 다운로드 방법 오늘은 Gem 을 안전하게 다운받는 방법을 함께 포스팅을 할게요 일단 Gem을 왜 사용하느냐. 이 부분은 rails를 왜 사용하느냐 문제와도 정말 연관이 있습니다. Gem 을 사용하면 정말 말도 안되게 빠른 속도로 개발을 할 수 있거든요. rails 에는 1. 게시판 만들기 → Scaffolding 2. 페이지네이션 구현 → Kaminari 3. 이미지 업로드 구현 → Carrierwave 4. 회원가입,로그인 구현 → Devise 5. 회원 권한 구현 → CanCanCan 등등 가져와 설치만 하면 페이지와 기능, 라우팅등에 관련한 모든 코드들을 자동으로 작성해주고 가져와주거든요. rails를 사용하면 Gem 을 모르는것은 정말 음.. 좀 곤란해요. 일단 가장 많이 쓰이는 Gem 중 하나인 devise .. 2022. 5. 19.
(해결) ActionController::InvalidAuthenticity Token 오류 Mysql2::Error: Field 'id' doesn't have a default value 오류 오류 내용 Ruby와 mysql을 연동하여 개발을 하던 도중, Authenticity Token def handle_unverified_request raise ActionController::InvalidAuthenticityToken end post 'reply/create/:post_id' => 'main#reply_create' 제가 하려던 코드는 절대 어려운 코드는 아닙니다. 코드의 내용은 그저 reply/create/1 과 같이 이러한 주소로 가 바로 create 를 하면 되는 것이었습니다. def handle_unverified_request raise ActionController::InvalidAuthenticityToken end 그런데 이러한 녀석을 만나게 된 것이었습니다. 해결 방법.. 2022. 5. 18.
반응형