CONFIGURING RAILS APPLICATIONS


Part 5 - Configuring i18n, Active Record


이한국(@majestin)
2014.09.02(Tue)

i18n

internationalization

국제화라는 뜻으로 각 나라 언어에 맞게 메시지를 
출력하도록 도와주는 용도로 사용합니다.

https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/ko.yml


config.i18n.default_locale = :en # :ko


어플리케이션에서 사용되는 기본 로케일을 설정합니다. 
기본값은 `:en` 입니다.




config.i18n.load_path = 'config/locales/*.{yml,rb}'

레일즈에서 사용하는 로케일(locale) 파일을 찾기 
위한 검색 경로를 설정합니다. 
기본값은 `config/locales/*.{yml,rb}` 입니다.


Active Record



관계형데이터베이스의 테이블을 객체로 연결해서 
네이티브 데이터베이스 SQL을  사용하지 않고도 
데이터를 조작할 수 있도록 다양한 메소드를 제공해 준다.



config.active_record.primary_key_prefix_type = : table_name 

기본 키 컬럼들의 네이밍시 사용합니다. 

기본적으로 레일즈는 `id` 라는 이름이 붙여진 컬럼을 기본키로 가정합니다.

    두 가지 옵션 :table_name, :table_name_with_underscore

:table_name

: table_name_with_underscore


config.active_record.table_name_prefix = 'northwest_'
config.active_record.table_name_suffix = '_northwest'

    테이블 이름 앞, 뒤에 문자열을 설정하고 싶을 때 사용합니다. 
    만약 `northwest_` 라고 옵션을 설정하게 되면 
Customer 클래스는 테이블에서 `northwest_customers`으로 찾게 됩니다. 


config.active_record.pluralize_table_names = true #false
    단수형인 객체의 이름을 복수형인 DB테이블으로 매칭시켜줍니다. 
하지만 기존의 DB테이블 이름이 단수형으로 된 경우도 있습니다. 
    이 경우에는 자동으로 객체이름을 복수형으로 만들어 
DB테이블 이름을 찾는 기능을 다음과 같이 false로 두어 해제하시면 됩니다.

    false 일땐 Customer 클래스는 customer 테이블을 사용합니다.


config.active_record.default_timezone = :utc

 데이터베이스로 부터 날짜와 시간을 가져올 때 
`Time.local` 또는 `Time.utc`중 하나로 가져옵니다.

:utc
:local


config.active_record.schema_format = :sql

    데이터베이스의 스키마 파일에 덤프 되는 형식을 설정합니다. 
옵션은 :ruby 또는 :sql 이 있습니다.
    마이그레이션에 따라 데이터베이스에 독립적인 버전 `:ruby`(기본값)과 
SQL 구문(데이터베이스에 의존적인)의 설정에 대한 `:sql`


config.active_record.timestamped_migrations = false

    마이그레이션 파일의 식별자를 정수 또는 타임 스탬프로 설정합니다. 
    기본값은 true이며 타임 스탬프를 사용합니다. 
    이는 동일한 어플리케이션 개발에 여러 개발자가 작업하는 경우에 적합합니다.


config.active_record.lock_optimistically = false 

    엑티브 레코드를 낙관적 잠금을 사용할 것인지 여부를 정합니다. 
    낙관적인 잠금은 레코드를 업데이트 할때에 버전을 보고, 충돌나면 그 에러를 처리하고, 

충돌나지 않으면 그냥 업데이트 합니다. 
    비관적인 잠금은 레코드를 갱신하는 동시에 해당 컬럼을 잠그고, 트랜잭션이 커밋되면 잠금을 풉니다. 





config.active_record.cache_timestamp_format = :number

캐시 키의 타임 스탬프 값의 형식을 정합니다. 기본 값으로는 `:number` 입니다.
:nsec

 MySQL의 어댑터의 설정 추가 옵션


    스키마 파일 생성에 포함되지 않을 테이블들을 배열로 받습니다.
    ActiveRecord::SchemaDumper.ignore_tables = ["posts", "books"]

Action Controller


액션 컨트롤러 프레임워크는 레일즈 어플리케이션으로 들어오는 
요청을 처리하고, 파라미터를 추출하고, 의도된 액션으로 보냅니다. 

액션 컨트롤러는 세션(session)관리, 템플릿(template) 렌더링, 
리다이렉트(redirect) 관리 서비스를 포함합니다.


config.action_controller.asset_host

에셋의 호스트를 설정합니다. 
에셋 호스트로 CDN을 사용할 경우에 유용합니다.


config.action_controller.perform_caching

어플리케이션의 캐싱 수행 여부를 설정합니다. 
개발 환경에서는 false로 설정되어 있고 배포 환경에선 true로 설정 됩니다.



config.action_controller.default_static_extension

캐시 된 페이지들의 확장자를 설정합니다. 기본값은 `.html` 입니다.


config.action_controller.default_charset

컨트롤러의 기본 문자 세트를 지정합니다. 
기본값은 "utf-8" 입니다. 


config.action_controller.logger

Action Controller에서 로그 정보를 사용합니다.  
로깅(로그 정보 기록)을 사용하지 않으려면 `nil`로 설정합니다. 


config.action_controller.request_forgery_protection_token

요청위조(RequestForgery)를 위한 token 매개 변수 이름을 설정합니다. 
`protect_from_forgery`의 호출은 기본적으로 
`:authenticity_token`을 설정합니다.


config.action_controller.allow_forgery_protection

CSRF 보호의 활성화 또는 비활성화를 합니다. 
기본적으로 테스트 환경에서는 `false`이고 다른 환경에선 `true`로 설정되어 있습니다. 


config.action_controller.relative_url_root

Rails에 배포하는 하위 디렉토리를 전달하는 데 사용됩니다. 기본값은 `ENV['RAILS_RELATIVE_URL_ROOT']` 입니다.


config.action_controller.permit_all_parameters

모든 매개 변수 mass assignment가 기본값으로 허용 여부를 설정합니다. 기본값은 `false` 입니다. 


config.action_controller.action_on_unpermitted_params

만약 매개 변수가 명시적으로 허용되지 않은 것이라면 로깅 또는 예외 발생을 활성화합니다. 
`:log` 또는 `:raise`를 설정하여 활성화합니다. 
기본값으로 개발 환경과 테스트 환경에선 `:log`이며, 그 외의 환경에서는 `false`로 설정되어 있습니다. 
Made with Slides.com