본문 바로가기

ruby on rails5

windows에서 Ruby on Rails 개발환경 구축하기 (wsl + rubymine) 1. 서론 처음 레일즈를 시작할 때 윈도우 위에 레일즈 개발 환경을 구축하다가 실패한 적이 있었습니다. 그때 그냥 속 편하게 회사맥북으로 개발하자고 다짐했었는데요, 지난 금요일에 맥북을 집으로 가져오는 걸 깜빡하는 바람에 자의반 타의반 재도전 했습니다. 2. windows와 rails 보통 Rails 개발은 윈도우 위에서 하면 안된다고들 얘기 합니다. 그런데 Ruby는 java 기반 언어라서 사실 이론적으로는 어떤 환경에서든 개발이 가능합니다. 그럼 왜 하지말라고 하는 걸까요? 가장 큰 이유는 gem 때문입니다. 윈도우에 아예 설치가 불가능한 gem들도 많고 Nokogiri 같은 gem은 윈도우의 파일 시스템을 지원하지 않습니다. 또 레일즈 커뮤니티 자체가 리눅스나 mac os 중심이기때문에 윈도우 위에.. 2020. 1. 8.
rails CORS 이슈 처리하기 1. 서론 최근 회사 동료분과 사내 행사 관련한 웹사이트를 만드는 토이프로젝트를 했습니다. 백엔드파트인 저는 api개발을, 웹파트인 동료분은 프론트를 맡아서 각각 개발한 후 웹에 api를 붙이려는 계획이었는데요, 간단한 사이트니까 주말동안 뚝딱 만들어오죠?ㅋㅋ 라며 경거망동하게 입을 놀렸던 스스로를 반성하게 되는 보람된 시간이었습니다. 사실 개발보다는 배포과정에서 이슈가 많았는데요, 그 얘기는 나중에 또 적도록 하겠습니다. 아무튼 우여곡절 끝에 잘 배포를 했고 http test에서 response가 잘 나오는 걸 확인하고 동료분께 api를 드렸습니당. "혜리님 오류나는데요 ㅠ" "네..?ㅠ 왜요..?ㅠ" 그냥 브라우저 상에서 api를 직접 호출할 때는 잘 작동을 하지만 local web 개발 환경에서는 .. 2019. 12. 26.
named scope안에서 last 메소드를 사용했을 때의 문제 해결 얼마전 ruby on rails 개발을 하던중 이상한 점을 하나 발견했습니다. 빈 값을 반환해야할 named scope가 그 반대인 전체 레코드를 모두 반환하는 것이 그것이었습니다. 제가 의도했던 코드의 로직은 아주 간단했습니다. 1. 데이터를 필터링함 2. 제일 마지막 record를 가져옴 그래서 저는 아무 생각 없이 model에 named scope를 만들어 주었습니다. class Model scope :example, -> { where(name: 'haeree').last } end 그리고 실행 결과는 이러했습니다. Model.where(name: 'haeree') # => [] Model.example # => [모델1, 모델2, 모델3] 또잉??? 저는 첫번째 라인처럼 where함수가 반환하는.. 2019. 11. 28.
Named scope로 db 조회를 최적화 해보자 Ruby on Rails를 공부하면서 낯설었던 개념중에 하나는 scope였습니다. scope라고 하면 변수가 살아있는(!) 범위를 뜻하는 scope가 바로 떠올라서 그런지 Ruby on Rails의 scope 키워드가 정확히 어떤 기능을 하는지 잘 와닿지 않았습니다. 그러던 중 scope에 대해 쉽게 잘 설명해놓은 How to optimize your search with Named Scopes in Rails 5 라는 영문블로그 글을 찾아서 개념도 정리할겸 번역을 해보았습니다.. #오역주의 * 아래 글에서 얘기하는 필터는 rails의 컨트롤러의 액션 앞뒤에서 실행하는 filter가 아니라 where문을 통해 데이터 베이스안에 데이터를 필터링하여 조회하는 메소드나 코드를 말함. * 아래 글에서 수차례 s.. 2019. 10. 31.
Ruby On Rails 6.0.0 InvalidAuthenticityToken 에러 대처하기 최근 회사 업무때문에 Ruby On Rails를 학습하고 있습니다. 처음 접하는 언어/프레임워크라 간단한 CRUD 튜토리얼을 따라하는 중인데요, 거의 뭐 프로젝트를 시작하자 마자 빨간색 에러 화면을 만나게 되었습니다. form 태그를 통해서 POST 메소드로 데이터를 전달하는 부분에서 난 에러인데요 대충 보니 인증 Token이 유효하지 않다는 것 같습니다. 입문 강의였기 때문인지 강의에서는 application controller에서 이 코드를 주석처리 하면 된다고 하고 대충 넘어갔습니다. 눈 씻고 봐도 그런 코드가 없네요.. 어쩔 수 없이 에러가 난 이유를 하나씩 찬찬히 찾아보았습니다. 먼저 Rails의 Authenticity Token이 뭐 하는 놈인지 찾아보았습니다. Authenticity Toke.. 2019. 10. 17.