레일즈 3.1에서 헬퍼를 이용한 액티브 레코드 라벨 번역하는 방법입니다.

레일즈 3.1에서 액티브 레코드 라벨 번역하기

ror-'레일즈 3.1에서 액티브 레코드 라벨 번역하기'

루비 온 레일즈 국제화(i18n) 가이드의 액티브 레코드 모델 번역 부분을 보면,
다음과 같은 방식으로 액티브 레코드 번역을 할 수 있다고 합니다.

en.yml

en:
  activerecord:
    models:
      user: Dude
    attributes:
      user:
        login: "Handle"
      # will translate User attribute "login" as "Handle"

User.humanattributename("login") 를 사용하면 Handle이 출력된다고 설명되어 있군요.

f.label :login 을 이용해 값을 출력하면?

Login

이라고 출력되네요.

그렇다면 label이 자동으로 번역되도록 하려면 어떻게 해야 할까요?

en.yml에 다음과 같이 추가해주면 아주 잘 동작합니다.

en:
   helpers:
    label:   
      user:
        name: "Handle"

label 헬퍼에 라벨값을 넣어 주는거에요.

이제 아래 코드를 레일즈 뷰에 입력해 보죠.

<% formfor @users do |f| %>
  <%= f.label :name %>
  <%= f.text
field :name %>
  <%= f.submit %>
<% end %>

Handle

이 출력됩니다.

레일즈 3.1에서 다국어 어플리케이션 개발 편하게 하세요.:D
by 月風



by


Tags : , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

windows 7 x64환경의 ruby 1.9.2에 mysql2 gem 설치하는 방법입니다.

windows 7환경의 ruby 1.9.2에 mysql2 gem 설치하기

ROR-'windows 7 x64환경의 ruby 1.9.2에 mysql2 gem 설치하기'

gem을 설치하는 방법은 간단합니다.

gem install mysql2

하지만 안타깝게도 저의 64비트 윈도우 환경에서는 mysql2 gem이 제대로 설치 되지 않는군요.

열심히 구글링 끝에 겨우 설치에 성공했습니다.

혹시 저와 같은 환경에서 머리카락을 뜯고 계신 분께는 이 글이 도움이 될 거에요.

Devkit 설치하기

  1. devkit을 내려 받습니다.
  2. devkit의 압축을 풉니다.
  3. cmd를 실행합니다.
  4. devkit 폴더로 갑니다.
  5. ruby dk.rb init를 실행합니다.
  6. 생성된 devkit의 config.yml 파일의 루비 경로를 수정해 줍니다.
  7. (선택사항) ruby dk.rb review 를 실행하여 경로가 올바른지 확인합니다.
  8. ruby dk.rb install을 실행합니다.

자 이제 ruby 1.9.2에서 mysql2 gem을 설치하기 위한 준비과정을 마쳤습니다.
본격적으로 설치를 해보죠.

mysql2 gem 설치 하기

  1. libmysql.dll 32비트를 내려받습니다.
  2. ruby192\bin 폴더에 내려받은 libmysql.dll을 복사합니다.
  3. mysql/lib 폴더에 내려받은 libmysql.dll를 복사합니다.(원본은 백업해 두세요.)
  4. subst X: "C:\mysql5.5.x" 로 mysql 폴더를 가상 드라이브로 설정해 줍니다.
  5. gem install mysql2 --platform=ruby -- --with-mysql-dir=X: --with-mysql-lib=X:\lib 로 gem을 설치합니다.
  6. subst X: /D 명령어로 가상 드라이버를 해제합니다.

드디어 길었던 windows 7 x64환경의 ruby 1.9.2에 mysql2 gem 설치하기 과정이 끝났습니다.

32비트 환경에서는 libmysql.dll파일을 내려받을 필요가 없어요.:D

참고 자료

Installing mysql2 gem on ruby 192

Development-Kit
by 月風



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

Perl에서 Jquery를 이용해 email 중복을 검사하는 방법입니다.

Perl에서 Jquery를 이용해 email 중복 검사 하기

-'Perl에서  Jquery를 이용한 email 중복체크 하기'

저는 이번에 Perl을 처음 건드려 봅니다.
'펄 세계엔, 한줄의 코드로 컴퓨터를 주므르는 고수들이 살고 있다!'
한참 전에 이런 소리를 들어 봤던거 같군요.
그때 든 생각은.
'한줄? 아! 디버깅하기 힘들겠구나.' 였어요.
인간 친화적이라기보다 기계 친화적인 언어라고 생각했었죠.
펄로 만들어진 PHP는 친숙하지만 Perl이라면 왠지 거리감이 느껴지는 언어였어요.
그런데 Perl에서도 요즘 흔히 쓰는 Jquery를 이용한 Ajax 구현이 가능합니다.
덕분에 조금 가까워 졌네요.:D


duplicate_test.html
<html><head/><body>
<INPUT maxLength=12 name="email" id="email" size="20"><br/>

<div id="duplicateResult"></div>
<script type="text/javascript" src="/rfo/jquery.js"></script>

<script type="text/javascript" src="/rfo/duplicate.js"></script>
</body></html>


duplicate.js
$(document).ready(function(){
  $("#email").keyup(function() {
    var email = $('#email').attr('value'); // get email
        if (email) { // values are not empty   
      $.ajax({
        type: "GET",
        url: "/cgi-bin/duplicate.pl", // URL of the Perl script
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: "email=" + email,       
        // script call was not successful
        error: function(XMLHttpRequest, textStatus, errorThrown) {
          $('div#duplicateResult').text("responseText: " + XMLHttpRequest.responseText
            + ", textStatus: " + textStatus
            + ", errorThrown: " + errorThrown);
          $('div#duplicateResult').addClass("error");
        }, // error
        // script call was successful
        // data contains the JSON values returned by the Perl script
        success: function(data){
          if (data.vacancy) { // script returned error
            $('div#duplicateResult').html("<span style='color:blue;font-size:14px;font-weight:bold;'>" + data.vacancy+"</span>");
            $('div#duplicateResult').addClass("vacancy");
          } // if
          else { // login was successful
            $('div#duplicateResult').html("<span style='color:red;font-size:14px;font-weight:bold;'>" + data.occupied+"</span>");
            $('div#duplicateResult').addClass("occupied");
          } //else
        } // success
      }); // ajax
    } // if
    else {
      $('div#duplicateResult').text("아이디를 입력해 주세요.");
      $('div#duplicateResult').addClass("error");
    } // else
    $('div#duplicateResult').fadeIn();
    return false;
  });
});


duplicate.pl

!/usr/bin/perl

use CGI;
use DBI;
use strict;
use warnings;
use rfoconfig;


read the CGI params

my $cgi = CGI->new;
my $email = $cgi->param("email");


connect to the database

my $dbh = DBI->connect("DBI:mysql:testDB:localhost","user","password");


check the username and password in the database

my $statement = qq{SELECT COUNT(*) FROM user WHERE email=?};
my $sth = $dbh->prepare($statement)  or die $dbh->errstr;
$sth->execute($email)  or die $sth->errstr;
my ($duplicatekey) = $sth->fetchrowarray;

my $json = ($duplicate_key) ?
  qq{{"occupied" : " $email는 이미 있는 아이디 입니다."}} :
  qq{{"vacancy" : "$email을 사용하실 수 있습니다."}};


return JSON string


"DBI:mysql:testDB:localhost","user","password"
우선 위 코드에서 testDB:localhost , user, password는 테스트 환경에 맞게 설정해 주세요.

print $cgi->header(-type => "application/json", -charset => "utf-8");
print $json;
아래 파일은 Document root/ 에 넣으세요.

  • Jquery.js (http://jquery.com 에서 다운로드 받으세요.)
  • duplicate.js
  • duplicate_test.html

아래 파일은 Document root/cgi-bin 에 넣으세요.

  • duplicate.pl


 

참고자료
Very simple login using Perl, jQuery, Ajax, JSON and MySQL

by 月風



by


Tags : , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

WAMP서버에 Perl과 CGI를 연동하는 방법입니다.

WAMP서버에 Perl, CGI 연동하기

텍스트 메이트-'WAMP서버에 Perl, CGI 연동하기'

우선 Active Perl을 다운받아 설치합니다.

아파치 서버의 httpd.conf Directory안에 있는 Options
 Includes ExecCGI를 추가해 줍니다.

DirectoryIndexindex.cgi index.pl를 추가해 줍니다.

cgi-bin 경로가 Default가 아니라면, 알맞은 경로로 변경해 줍니다.

ScriptAlias /cgi-bin/ "/cgi-bin"
<Directory "/cgi-bin">

다음을 추가해 주면 httpd.conf 설정이 완료 됩니다.
AddHandler cgi-script .cgi
AddHandler cgi-script .pl

펄 개발을 할 때, 스크립트 파일인 /cgi-bin/filename.pl 파일의 가장 위에
#!c:/Perl/bin/perl.exe (펄 경로) 를 추가해줍니다.

만약 경로를 알맞게 써주었는데도 제대로 작동하지 않으면,
httpd.conf 파일에 ScriptInterpreterSource registry 를 한 줄 추가해 줍니다.

이제 MySQL 인터페이스를 설치할 차례입니다.

cmd를 실행하고, 펄이 설치된 폴더로 가세요.

c:\perl\bin\> ppm repo add uwinnipeg

위 명령어로 저장소를 추가해 줍니다.

c:\perl\bin\> ppm install DBD-mysql

마지막으로 DBD-mysql을 인스톨 하면 완료!

액티브펄 설치시에 폴더를 임의로 변경했다면,
DBD가 엉뚱한 폴더에 인스톨 될 수 있습니다.
저는 64비트 OS용을 깔았더니, c:\Perl64에 설치되더라고요.
하지만 인스톨된 DBD-mysql을 설치된 펄 폴더로 옮겨주면 이상 없이 잘 동작합니다.
펄 개발 환경을 구축하실 분이 계실지 모르겠지만,
혹시 계시다면 이 글이 도움이 되면 좋겠네요.:D

참고 자료

Setting Up Perl and CGI For Wamp Server WAMP(P)

by 月風



by


Tags : , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

오랜 전통을 자랑하는 부쉬밀 아이리시 싱글 몰트 위스키.


병-'부쉬밀 아이리시 위스키'

아일랜드에 와서는 와인과 멀어졌습니다.
와인 가격이 한국과 비슷하기 때문이죠.
비싸요.
반면에 위스키는 상대적으로 저렴한 편입니다.
와인 두 병값이면 위스키를 한 병 살 수 있을 정도니까요.
얼마 전 장을 보다가,
400년이란 오랜 역사를 지닌 부쉬밀 위스키를 한 병 집어왔습니다.
진한 향과 부드럽고 깔끔한 맛이 매력적이네요.
끝의 여운이 남지 않는 게 좀 아쉽지만, 마음에 드는 녀석입니다.
게다가 얼마 전 집에 사둔 베일리스와 섞어 마시니,
만족도가 200% 올라가는군요!
비율은 부쉬밀 아이리쉬 위스키와 베일리스를 2:1로 섞었습니다.
칵테일 이름은 뭐라고 할까요.
베일에 쌓인 아이리시?!
어쨌든 맛있어요!
이곳 아일랜드의 술이 제 입맛에 참 잘 맞습니다.:D



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

19세기 아일랜드의 감옥. 코크 시티 자올에 다녀왔습니다.

코크 시티 자올

며칠 전 밤이었습니다.
집으로 오는 길에 분위기 잡는 이 건물을 마주쳤죠.
'음 뭔가 비밀이 있을법한 곳이군.'
언제 한번 들러봐야겠다 생각했어요.
일기예보를 보니 날씨가 맑음이네요?
화창한 일요일.
거리도 부담 없으니, 가벼운 발걸음으로 코크 시티 자올을 향해 떠났습니다.
제가 사는 집에서 십 분 정도 걸으면, 코크 시티 자올이에요.
카메라와 입장료만 달랑 들고,
슬리퍼 신고 동네 슈퍼 가듯 코크의 유명 관광지로 향했죠.

입구-'코크 시티 자올'

각지고 차가운 색상의 돌 건물.
건물 입구부터 딱 감옥 같은 분위기가 저를 압박합니다.
입장료를 내고 감옥 내부를 구경합니다.
곳곳에 마네킹을 세워놓고 눕혀놓고 앉혀놓았습니다.
'이 수감자는 옷을 훔쳐서 갇혔음.'
'이 수감자는 빵을 훔쳐서 갇혔음.'
'이 수감자는 술주정뱅이라 갇혔음.'
'이 수감자는..'
"으헉!!!"
마네킹이 움직입니다.
"오우 쏘리."
다른 관광객이군요.
심장이 약한 사람은 조심해야겠어요.
움직이는 마네킹(?)이 있던 그 방은 죄수 체험을 할 수 있는 방입니다.

죄수체험-'코크 시티 자올'

죄수용 침대에 누워볼 수도 있고, 감방문을 잠글 수도 있죠.
문을 닫고 들어가 침대에 누웠습니다.
'그래도 창문은 달려 있구나.'
'끼이이익.'
"으헉! 쏘리."
감방문을 연 관광객이 저를 보곤 소스라치게 놀라며 외치더군요.
'마네킹이 움직여?!'
라고 생각했겠죠.^^;

탈출이 쉽지 않아-'코크 시티 자올'

감방에서 바라본 복도는 예전에 재미있게 했던 메탈기어 솔리드의 한 장면을 생각나게 합니다.
'들키지 않고 탈출할 수 있을까?'

멋진 나무-'코크 시티 자올'

밖으로 나오니 뒤뜰에 멋진 나무가 자태를 뽐냅니다.
19세기에도 그 자리에 우뚝 서 있었을듯한 나무.
뒷마당에선 죄수들이 운동 삼아 산책을 했다고 하더군요.
단 죄수들끼리 말을 하지 못하게 하는 규칙이 있었답니다.
수도승 같은 생활을 해야 했다고 하더라고요.
그래서 죄수들이 여럿 미쳤답니다.
코크 시티 자올.
나름의 이야기가 있는 흥미로운 관광지였어요.

코크 시티 자올 주소
CORK CITY GAOL,
Convent Avenue, Sunday's Well, Cork City, Ireland.

코크 시티 자올 홈페이지

by 月風



by


Tags : , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!