본문 바로가기

Ruby on Rails

(5)
문자열 내에 링크가 있으면 <a href> 구문을 추가해주는 헬퍼 def convert_link_in_string( string ) regex = "\\b(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]" content = string if string.match( regex ).present? && string.match( regex )[0].present? && string.match( regex )[0].include?('http') link = string.match( regex )[0] content = string.gsub(link, "#{ link }") end return raw( content ) end
Devise로 이메일 인증 구현하기 환경루비 버전 : ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin17]레일즈 버전 : Rails 5.1.6 구현필요한 잼은 두가지이다. Devise 버전 : 4.4.3mailgun 버전 : 1.1.6 인스톨을 하고 디바이스로 유저를 생성한다. $ rails g devise User 가장 먼저 모델(여기서는 User)에 confirmable 을 추가해준다. class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable and :omniauthable devise :database_authe..
루비 정규식 테스트 사이트 http://www.rubular.com 정규식을 테스트 할라면 엄청 귀찮고 감도 잘 안온다. 그럴때 위 사이트를 이용하면 매우 손쉽게 가능 예제 )정규식에 쓸 내용 : [0-9]{4}+\.[0-9]{2}+\.[0-9]{2}텍스트에 쓸 내용 : 2018.02.09 07:30
인덱스가 걸려있는 컬럼을 지우면 어떻게 될까? 데이터 수집 서비스를 하나 운영하다, 쓸모없는 컬럼이 생겨서 삭제하고 싶어졌다. 문제는 해당 테이블이 1억 2천만 줄이라는 사실......... 과연 컬럼을 삭제하면 인덱스는 어떻게 되지??????결론은 해당 컬럼만 빠진 인덱스가 생긴다. 요약:루비온 레일즈에서 1억 2천만 줄의 테이블에서 다중 인덱스가 걸린 컬럼 하나를 삭제함약 1시간이 걸려서 컬럼이 삭제됨인덱스는 해당 컬럼만 제외하고 존재함
레일즈 벨리데이션은 믿을 수 있는가? 초당 약 50개를 insert하는 시스템을 구축하고 있다. 0.1초에 5개를 insert한다.데이터는 간단한데 4개의 String 데이터를 insert하는 구조이다. 그 중 컬럼 A + C는 중복 될 수 없다.A에 “고기” C에 “강남”이면 다시 테이블에 A가 고기고 C가 강남인 데이터가 들어갈 수 없다.즉 복합 고유키 설정이다. 나는 모델에 벨리데이션을 줘서 해당 규칙을 유니크로 만들었다. > validates : A , uniqueness: { scope: :C } 아니 근데 왠걸…..계속해서 중복값이 들어온다. 여러가지 방안으로 분석한 결과,놀랍게도 시분초까지 완벽하게 일치하는 데이터 여러개가 입력되었다. 해당 row는 id값만 달랐다. 레일즈의 벨리데이션은 완벽하게 자신의 역할을 수행하지 못한다는..