2014. 12. 9. 00:07

Ruby on Rails

POST를 하게 되면 [ InvalidAuthenticityToken ] 오류가 종종 발생한다.

1. CSRF 기능을 끄거나



2.    <FORM> 태그 대신 레일스의 폼 헬퍼 메서드 즉 form_tag 등의 기능을 사용하는 방법

레일스 2.0에는 CSRF (Cross-Site Request Forgery) 공격을 막기 위한 기능이 포함되어있으므로

CSRF를 위해 form에 안전한 키를 숨기고 서버사이드에서는 내가 발급한 키가 맞는지 확인해서 값을 비교

이 때 뭔가 문제가 있으면 InvalidAuthenticityToken 예외가 발생




ruby controller 파일에 skip_before_filter :verify_authenticity_token 을 적으면 해결되긴 함



Posted by Superkill
2014. 10. 23. 14:24

루비 온 레일즈 4.1 릴리즈 노트





주목할 만한 것들

  1. Spring의 Application Preloader

  2. 새로 생긴 config/secrets.yml 파일

  3. 액션팩(ActionView와 ActionController 모듈을 합쳐 부르는 것) 의 변수들

  4. Action Mailer 미리보기

2. 주요 특징
2.1 Spring 
- Spring은 rails의 preloader 이다. 프로그램을 백그라운드에 돌아가게 해줘서 테스트 실행을 할 때나 rake 작업이나 migration 할때마다 시작 할 필요가 없게 해줌으로 개발 속도를 높여준다.

- Rails 4.1 버전은 "springified" binstubs를 포함한다.  즉, bin/rails 와 bin/rake는 preloaded spring 환경으로 부터 긍정적 효과를 본다는 것이다.
(binstubs 는 실행가능한 파일 감싸는 코드<wrapper script> 인데 실행 가능한 파일을 호출하기 전에 환경을 준비하는 역할을 한다. 루비에서는 보통 RubyGem이 executable을 포함하는 gem을 설치하고 나서 binstub을 생성한다.)

Spring README


2.2 config/secrets.yml

- Rails 4.1 버전은 이전에 없던 secrets.yml 파일을 생성하게 된다.

 이 파일은 기본적으로 application의 secret_key_base를 포함하는데 이것은 외부 API를 위한 액세스 키 같은 비밀 data를 저장하는데 쓰일 수 있다.


- secrets.yml에 추가된 비밀 데이터들은 Rails.application.secrets를 통해 접근이 가능하다. 


- 예를 들면 

 "키 : 키값" 이 secrets.yml 파일에 있을때

 development 환경에서 "Rails.application.secrets.키" 는 키값을 리턴한다. 


2.3 Action Pack 변수

- 주로 스마트폰, 타블렛, pc 브라우저에 따라 다른 HTML/JSON/XML 템플릿들을 렌더링 할때 쉽게 할 수 있게 해준다.


2.4 Action Mailer Previews

- 특별한 URL을 통해 email을 시각적으로 볼 수 있게 해주는 방법을 제공한다.


- ActionMailer 패키지 

http://api.rubyonrails.org/v4.1.0/classes/ActionMailer/Base.html#class-ActionMailer::Base-label-Previewing+emails


2.5 Active Record enums

- http://api.rubyonrails.org/v4.1.0/classes/ActiveRecord/Enum.html


2.6 Message Verifiers

- Message Verifiers로 서명된 메세지를 생성하고 확인할 수 있다. 민감한 데이터를 안전하게 전송할 때 유용하다.


- Rails.application.message_verifier 메소드는 secret_key_base 와 message verifier 이름으로 부터 키를 얻어 메세지에 서명을 하는  message verifier를 생성한다.


2.7 Module@concerning

- mix-in으로 생기는 단점을 제거함으로써 자연스럽고 low-ceremony[각주:1]적인 방법으로 하나의 클래스의 역할을 분리해서 관리 할 수 있다.


- 링크 : http://api.rubyonrails.org/v4.1.0/classes/Module/Concerning.html


2.8 CSRF protection from remote <script> tags

- Cross site request forgery(CSRF) protection 은 GET 요청을 통한 자바스크립트 응답도 처리할 수 있다. 즉, 제 3자의 사이트에서 당신의 자바스크립트 URL을 참조하는 것과 중요한 데이터를 추출해내기 위해 자바스크립트를 구동하는것을 예방해 준다.


- 자바 스크립트 url이 xhr을 이용하지 않는 이상 CSRF protection에 막혀 실패할 것이다. 그러므로 XmlHttpRequests 를 명시적으로 사용하도록 post:create, format: : js 대신 xhr : post, :create, format: :js 를 사용하라.


3 Railties (rails 네임스페이스 안의 class이다. Object 클래스를 상속받음)

3.1 제거된 것들

      • Removed update:application_controller rake task
      • Removed deprecated Rails.application.railties.engines
      • Removed deprecated threadsafe! from Rails Config
      • Removed deprecated ActiveRecord::Generators::ActiveModel#update_attributes 
      • - ActiveRecord::Generators::ActiveModel#update 가 대체한다.
      • Removed deprecated config.whiny_nils  option
      • Removed deprecated rake tasks for running tests : rake test:uncommitted and rake test:recent

3.2 주목할 만한 변경사항

      • Spring application preloader 가 기본적으로 새 어플리케이션에 설치된다.

- 그러나 이것은 develop group의 Gemfile을 사용하므로 production 모드에서는 설치가 안될 것이다.

      • BACKTRACE 환경 변수가 사라지는 현상
      • 환경 설정에 노출된 MiddlewareStack#unshift

--------------------미 완 성-----------------------------------


하아.. 너무 많다... 글 쓰기 싫다.. 아직 절반도 못한거 같은데
 이 내용을 다 옮겨야 되나..

릴리즈 노트 링크 

http://edgeguides.rubyonrails.org/4_1_release_notes.html





  1. [term]low-ceremony 참고 참고 [본문으로]
Posted by Superkill
2014. 10. 23. 13:48

2014년 10월 23일 기준으로 4.1.6 버전 api을 보여준다.

링크 : http://api.rubyonrails.org/

'ruby on rails > Reference' 카테고리의 다른 글

[루비 젬] RubyGems.org  (0) 2014.10.19
Ruby On Rails Guides  (1) 2014.10.14
Posted by Superkill
2014. 10. 22. 17:20

네이티브 c/ c++ 확장 플러그인을 RubyGem을 통해 쉽게 다운로드, 설치, 사용할 수 있게 해주는

toolkit-addon 이다.



http://rubyinstaller.org/downloads/

-> 여기서 다운 받을 수 있다.


설치 과정은 다음에 포스트..



'ruby on rails > Tool' 카테고리의 다른 글

[Sass] sass/scss -css 작성을 편리하게  (0) 2014.10.21
Posted by Superkill
2014. 10. 21. 23:07

Sass에는 두가지 문법이 있다.


하나는 Sass 3 버전 부터 새로 생긴 문법인 Scss 이다. 

CSS3를 지원하고 .scss 확장자를 사용한다.


구버전인 Sass는 대괄호와 세미콜론을 사용하지 않는 표현식을 사용한다.

Scss가 나왔지만 여전히 지원되고 있고 .sass 확장자를 사용한다.



Sass는 CSS3의 확장 정도로 볼 수 있다. 

추가된 기능을 몇개 보자면 

  1. 변수 선언,사용 가능
  2. nesting 규칙
    • (element 안에 다른 element가 있는 것을 구분하기 쉽게 해줌)
  3. partial 기능  
    • (partial은 소량의 css 코드를 가지며 모듈화 하기에 좋다)                
    • (단, partial 파일은 _partial.scss 형태로 네이밍)
  4. import 기능
    • (@import 를 사용하서 import 한다)                                                                
    • (단점은 각 @import 마다 하나의 http 요청을 생성한다는 것)
  5. mixin 기능
    • (@mixin 을 사용해서 템플릿 처럼 만들어 쓸 수 있다)
  6. 상속
    • (@extend를 사용해서 상속과 같은 효과를 볼 수 있다)                                         
    • (같은 코드를 반복할 필요가 없음)                                                                    
  7. 연산자
    • (width : 300px / 960px * 100 이렇게 쓰면 웹 상에서는 width : 62.5%로 자동변환)

참고 링크


공식 사이트

http://sass-lang.com/

'ruby on rails > Tool' 카테고리의 다른 글

[DevKit] 1.DevKit이란?  (0) 2014.10.22
Posted by Superkill
2014. 10. 19. 01:45

RubyGems 홈페이지 링크 : http://rubygems.org/



루비젬은 루비-소프트웨어-라이브러리를 관리하는 시스템이다.

이것으로 으로 패키징 된 루비코드들을 'gem' 이라고 한다.

프로젝트에 사용하고 싶은 루비 소프트웨어를 

'gem'이 다운로드, 설치, 관리 할 수 있도록 도와준다.


관련 기사 : http://www.linuxjournal.com/article/8967


'ruby on rails > Reference' 카테고리의 다른 글

Ruby on Rails API  (0) 2014.10.23
Ruby On Rails Guides  (1) 2014.10.14
Posted by Superkill
2014. 10. 19. 00:46


http://rubyinstaller.org/에 접속해서 Download를 클릭합니다




신의 운영체제가 64비트일 경우에는 (x64)를 선택합니다.


어/일본어 중에서 아무래도 영어를 선택..


라이센스 수락..


1. Install Tcl/Tk suppport

 - Tcl/Tk는 javascript나 Pearl 같은 스크립트 언어

 - 자세한 내용은 http://www.tcltk.co.kr/


2. Add Ruby executables to your PATH

-  다음 캡처화면에 나와있듯이 사용자 변수에 Ruby 경로를 자동으로 설정


3. Associate rb and rbw files with this ruby installation

- 체크하면 확장자가 .rb 또는 .rbw인 파일을 더블클릭으로 즉시 실행시킬 수 있다



완료!

Posted by Superkill
2014. 10. 14. 20:27


영문 링크 : http://guides.rubyonrails.org/

- 글작성일(2014-10-14) 기준 최신버전인 v4.1.6의 가이드를 보여준다

- 이전 버전  

http://guides.rubyonrails.org/v4.0.8/.

http://guides.rubyonrails.org/v3.2.19/.

http://guides.rubyonrails.org/v2.3.11/.





한글 링크 : http://rubykr.github.io/rails_guides/

글작성일(2014-10-14) 기준 Rails 3을 위한 가이드라고 표시되어 있다.

- 이전 버전

http://guides.rubyonrails.org/v2.3.8/

'ruby on rails > Reference' 카테고리의 다른 글

Ruby on Rails API  (0) 2014.10.23
[루비 젬] RubyGems.org  (0) 2014.10.19
Posted by Superkill