일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- VMware
- VPN
- QT
- VIM
- ssh command
- 우분투
- Openswan
- opsworks
- 리눅스
- port
- AWS
- Linux
- Chef
- 드라이버
- ssh
- RUBY
- golang
- driver
- docker registry
- 루비
- DevOps
- ubuntu
- window size
- 방화벽체크
- sudo
- 도커
- docker container
- 패키지
- docker-compose
- docker
- Today
- Total
목록Ruby (9)
구리의 창고
소개Ruby에는 Mixin 구현을 위한 module이란 기능이 있다. 코드를 재활용하거나 큰 코드를 나눠서 구현해 여기 저기에서 필요한 코드를 가져올 때 유용하다. 일반적으로 class에 include 혹은 extend 해서 사용하게 되는데, 어떤 경우에 class method와 instance method가 되는지 코드를 통해 정리해보려고한다.includeclass Bar에 module Foo를 include하면 instance method foo가 된다.module Foo def foo puts "method foo" end end class Bar include Foo end Bar.new.foo # method foo Bar.foo # undefined method extendclass Bar에 ..
문제점ruby 버전관리를 위해서 rvm을 많이 사용한다.사용하다보면 아래와 같은 에러가 나는 경우가 있다.$ rvm use 2.0.0 RVM is not a function, selecting rubies with 'rvm use ...' will not work. You need to change your terminal emulator preferences to allow login shell. Sometimes it is required to use `/bin/bash --login` as the command. Please visit https://rvm.io/integration/gnome-terminal/ for a example.원인rvm은 login shell에서 돌아간다. 위와 같은 에러..
1. MySQL 타임존 설정하기 콘솔에서 아래를 입력해 타임존 정보를 MySQL에 추가해준다.mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql 다음은 MySQL 설정 추가/etc/my.cnfdefault-time-zone='Asia/Seoul' MySQL 재시작 후 확인해본다. 확인 방법은 select @@session.time_zone; 2. Rails4 설정 {application_path}/config/application.rbconfig.time_zone = 'Seoul' config.active_record.default_timezone = :local
이 방법 저 방법 다해봤는데 잘 안되다가 해결방법을 찾았다. 참고 할 사이트는 아래이다.http://www.server-world.info/en/note?os=CentOS_6&p=ruby19 혹시 사라질 수도 있으니 출처를 밝히고 그대로 옮긴다. yum -y groupinstall "Development Tools" yum --enablerepo=epel -y install libyaml libyaml-devel readline-devel ncurses-devel gdbm-devel tcl-devel openssl-devel db4-devel libffi-devel # install from EPEL mkdir -p rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPM..
Ruby ORM 중에서 DataMapper를 사용하다보면 1:1 관계 설정 시에 has one과 belongs_to가 둘 다 있는걸 볼 수 있다. belongs_to 와 has 1 내가 생각하기엔 스키마 상으로는 비슷비슷 할 거같은데 의미상으로 다르다. Memer와 Profile이라는 모델이 있다고 가정하고 Member는 하나의 Profile을 반드시 가진다. 그러면 Member는 Profile을 has 1 하는 것이고 Profile은 Member를 belongs_to 하는 것이다. 어째든 동작상으로는 거의 동일한데 이걸 알아야한다 has 1을 해보고 엉? 안되네? 라고 생각 할 수 있는데 Member에서 has 1, :profile 을 해주면 Profile에 foreign key가 생기고Profile에..
http를 이용해 api를 만들다보면 작업시간이 길어져서 http가 적합하지 않은 경우가 있다. 이럴 경우 작업을 백그라운드로 돌리면 반응시간도 빨라지고 작업도 잘 돌아간다. Ruby gem 중에 resque라는 것을 사용하면 백그라운드에서 실행되는 큐를 사용 할 수 있다. reque는 redis 기반으로 작동하기 때문에 설치시 redis도 같이 설치해줘야한다. railscast에 실제로 사용하는 가이드가 나와있다. http://railscasts.com/episodes/271-resque?view=asciicast 나도 잘 모르지만 아주아주 간략하게 설명하면 Reque가 다수의 worker를 만들어주고 자동으로 worker들한테 일을 할당해주는 것이다. 아래 코드는 간단한 샘플 코드이다. require..
Unit Test를 하다보면 성공/실패를 판단 할 때 색깔이 나오면 아주 좋다. 반복된 테스트에 사실 메시지를 자세히 읽기도 귀찮다 Rails에서는 기본으로 test 결과에 색깔을 입히지 않는데, gem에서 설치 할 수 있다. 아래 명령어를 통해 redgreen 을 설치하면된다. gem install redgreen 그 후에 프로젝트 root에 있는 Gemfile에 gem 'redgreen'을 추가해주고 bundle install로 적용을 시켜준다. 다음은 test/test_helper.rb 에 들어가서 require 'redgreen'을 추가해준 후 테스트를 실행해본다.
Rails 3에서는 자체에서 CSRF protection을 해준다고한다. 아파치 로그를 살펴보면 WARNING: Can't verify CSRF token authenticity 와 같이 떠있다. 그래서 session이 제대로 저장되지 않은 것처럼 보이는데 두 가지 해결 방법이 있다. CSRF protection을 꺼버리던가(나는 그냥 이게 편하던데) ajax 요청시 헤더에 csrf token 값을 넣어서 보내주는 것이다. 보통 rails가 만들어주는 기본 레이아웃에 라는게 존재하는데 이와 같이 자동으로 token을 만들어준다. common.js와 같이 공통으로 사용하는 자바스크립트에서 ajaxSend를 아래와 같이 바인딩해주던지, $.ajaxSetup({ beforeSend: function(xhr) ..
Rails3 을 사용하다가 Httparty를 사용 할 일이 생겼다. 문서에 있는데로 requre 'rubygems' require 'httparty' 를 하려는데 에러가나면서 httparty를 찾을 수 없다고한다. irb 에서 콘솔로 require 'httparty'를 해봤는데 설치는 정상으로 돼있다. 이런 경우에는 Gemfile에 아래와 같이 추가해줘야한다. Gemfile는 프로젝트 루트 디렉토리에 있다. gem 'httparty' 그러고 나서 웹서버를 재실행하면 permission denied 'Gemfile.lock' 이란 에러가 날 수도 있는데 gem 에서 bundle을 설치하고 작업을 몇 가지 해줘야한다. gem install bundle bundle install