BLOG GUESTBOOK
RSS
CATEGORY


Comments


Trackbacks

[Rails] bad URI(is not URI?)

2013. 11. 17. 20:51 -  Dev/Rails

분명히 그 동안 open(uri) 형태로 잘 쓰고 있었는데

뭐 하나 딱 고쳤더니 바로 저 에러가 뜬다ㅠㅠ


저거 고쳤다고 이런 에러가 나면 안되는데... 하는 생각이 들어서 좀 검색해봤다.

검색하자마자 바로 주루룩 뜬다ㅋㅋㅋㅋㅋ


사실은 invalid URI였지만 그 동안은 여차저차하여 잘 통과되었던 듯...

한글을 uri에 넣었는데 그것 때문에 오류가 발생한 듯하다.


해결 방법은


encoded_url = URI.encode(url)

URI.parse(encoded_url)


인코딩한 다음에 다시 파싱해서 사용하면 된다! 간단하네


Comments


Trackbacks

[Rails] Date Formats.

2013. 8. 20. 15:10 -  Dev/Rails

웹페이지에서 날짜를 표현하는데

yyyy-mm-dd hh:mm:ss에다가 timezone까지 나오면 뭔가 이상하잖아

그래서 날짜 형식을 보기 좋게 바꿀 수는 없을까 하고 검색을 좀 해보았다.


우선 가장 좋은 문서는 루비온레일즈 api.

http://api.rubyonrails.org/classes/DateTime.html

seconds_until_end_of_day()라는 메소드도 있네. 말 그대로 하루가 끝나려면 몇 초가 남았는지를 알려주는 놈이다. 신기하다. 근데 저거 어디에 쓰는거지


하지만 나한테 지금 필요한 건 이게 아니었기 때문에 조금 더 검색. 그리고 좋은 자료를 발견했다!

http://techoctave.com/c7/posts/23-rails-date-formats

내가 궁금해하는 것들은 전부 나와있다 ^0^ 행복하군


레일즈에서 Date format을 바꾸기 위해서는 strftime() 메쏘드를 사용하면 된다.

strftime() 함수는 C에도 있고 PHP에도 있고 하니까.. 비슷하게 사용하면 되겠지?

인자로 format string을 넣어주면 알아서 예쁘게 고쳐보여준다능;


내 경우에는

List.first.updated_at.strftime("%B %d, %Y")

이런 방식으로 써줬더니 원래는 

'2013-08-20 14:15:15 +0900' 이런 식으로 나오던 날짜가 

'August 20, 2013' 이라고 예쁘게 나타나는 걸 확인할 수 있었다.


--

참고로 day를 서수로 표현하고 싶다면 약간의 트릭이 필요하다.

http://stackoverflow.com/questions/165170/in-ruby-on-rails-how-do-i-format-a-date-with-the-th-suffix-as-in-sun-oct-5


time.strftime("%a %b #{time.day.ordinalize}")

이런 방식으로 .ordinalize를 사용하면 기수를 서수로 바꿀 수 있다.

ordinalize는 날짜에만 적용되는 것은 아니고, 그냥 '숫자.ordinalize'와 같은 방식으로 사용할 수 있다. 예를 들자면, 3.ordinalize의 결과는 3rd. 루비에서는 Integer 하나하나도 전부 class인지라...


Comments


Trackbacks

레일즈 앱 하나를 다른 서버로 옮기고 나서 기분좋게 bundle을 쳤더니,

bson_ext를 설치하다가 오류가 나버린다;;


해결 방법은 간단하다. rubygems를 업데이트해주면 된다. 

2.0.0 버전의 버그라고 하니...


gem update --system


한 줄만 쳐주면 된다!


Comments


Trackbacks

Ruby Version Manager를 이용해 루비와 레일즈 등의 젬을 설치하다가 에러가 났다. 학부에서 제공하는 서버를 사용중이었는데, 제공된 용량 1GB를 초과했기 때문이었다.

용량을 확보한 뒤에 다시 설치를 시도했더니 다음과 같은 에러가 발생했다.


ERROR:  While executing gem ... (ArgumentError)

    marshal data too short


뭔지 잘 모르겠어서 rvm implode를 시전해 rvm 관련된 모든 것들을 날려버린 후 재설치를 시도했다. 그런데 또다시 저 부분에서 문제가 발생했다. 도대체 왜!!

검색해봤더니 금방 답이 나왔다. 이 정도 문제는 전통적인 문제라고 하더군.
그냥 ~/.gem 폴더를 통째로 날려버린 후에 재설치를 시도하면 아무 문제 없이 rvm이 설치된다. 영 찜찜하다면 디렉토리 이름만 살짝 바꿔놓아도 무방하다.


Comments


Trackbacks

이상하게 Phusion Passenger로 실행시켜놓은 앱들은 오랫동안 실행시키지 않으면 자동으로 suspend되는 것 같다. 때문에 앱을 실행시키면 아톰 서버인 내 서버에서는 거의 1분 가량의 시간이 앱 재실행에 소요된다.

앱을 항상 백그라운드에서 돌아가게 만들자!


키워드

* PassengerPreStart

* PassengerPoolIdleTime

이런 식으로 파라미터 수정하는 방법이 가장 좋은 듯하고

안되면 뭐 cron이라도 써서 주기적으로 실행시키는 수밖에 흑


http://stackoverflow.com/questions/853532/slow-initial-server-startup-when-using-phusion-passenger-and-rails


이게 제일 좋아보임

왜냐하면 나는 sudoer니까

sudo 권한 없으면 다른 방식 알아보시길 후후




==추가

passenger apache module이 없다네ㅜㅜ

rails.load에 들어있다

그냥 이걸 지우고 passenger.load랑 passenger.conf 파일 만들어서 원하는 대로 넣어주는 것도 괜찮을 듯


Comments


Trackbacks

이 링크가 매우 큰 도움이 된다.

https://github.com/banane/sample-koala-rails-app

실제로 어떻게 인증 토큰을 받아와야할지도 몰랐던 내가 큰 도움을 받았던 링크. Koala app 예제이다.


그리고 Graph API를 본격적으로 사용해보기 위해서 거쳐가야 하는 Graph API Explorer.

https://developers.facebook.com/tools/explorer/


Comments


Trackbacks

- mongodb.yml 수정하기 : production 탭 추가!

데이터베이스가 가장 중요한 듯



- 대부분 RAILS_ENV 기본값이 development라서 아무 생각없이 돌리다가는 production 올려놓고 development에서 작업하는 색다른 경험을 할 수 있음... 왜 업데이트가 안 되는지 한참 고민함ㅠㅠ

-e production 옵션을 잊지 말자


- production에서는 rake assets:precompile 해주어야 한다! 근데 이거 오래걸림ㅠㅠ



- 왜 Development 모드에서 작동되는 것들이 production으로 옮겨가면 안 되는걸까? 조금 더 생각해 봐야할듯;




* 속도 저하 문제는 나의 알고리즘(?)의 문제인가, 서버 성능의 문제인가, 아니면 레일즈의 한계인가!