Bucket Place/Ruby on Rails

[Ruby on Rails] 메모...

Cloud Travel 2014. 5. 9. 15:56

설명글이라기보단 간단한 나의 메모를 간략하게 적은 것이다.




1. routes를 이용한 주소 변경


 흔히 link_to를 이용하여 다른 페이지로의 연결을 할때에는 [Controller_name]_[Action]_path 라는 형식을 이용했다.

 

 예를 들어 say 컨트롤러의 hello 액션이 정의되어 있을 때 이 페이지로 접근하기 위해서는 아래의 URL로 접근을 해야한다.

"http://localhost:3000/say/hello"

 이는 사용자에게 필요없는 정보를 제공해줄 수 있다.


 이런 것을 방지하기 위해서 routes.rb 파일을 수정하여 접근하는 주소를 변경할 수 있다. 

match '/signup',  to: 'users#new',            via: 'get'
match '/hello'    to: 'say#hello',            via: 'get'

  match - to - via를 이용하는 것인데 match는 어떤 주소로 접근을 할 것인지 나타내고, to는 controller와 action을 정의하여 페이지가 어디에 존재하는지를 나타낸다. 마지막으로 via는 어떤 방식으로 그 페이지를 가지고 오는지 정의를 한다.




2. generate를 사용하지 않고, controller를 추가하기

 

 1) app/controllers 에 컨트롤러를 위한 새로운 파일을 생성한다.

   > [controller_name].rb

  2) 파일에 액션을 추가한다.

  3) config/routes.rb 파일에 컨트롤러를 추가한다.

   > get "controller_name/action name"

  4) app/views 에 새로운 컨트롤러를 위한 디렉토리를 생성하여 view파일을 생성한다.




3. Boot strap 사용하기


  1) Bootstrap Gem 추가

    > Gemfile

    gem 'bootstrap-sass', '2.3.2.0'
    gem 'sprockets', '2.11.0'

  2) bootstrap install

    > bundle install

  3) Web server restart

  4) Bootstrap 과 Assets pipeline의 호환성을 위해서 설정 변경

    > config/application.rb

    ...

    config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif)

   5) Custom css 추가

     > CSS 저장을 위한 파일 생성

     > CSS File에 bootstrap import 시키기 (@import "bootstrap";)

     > 추가적으로 style 추가

   6) 확인




4. Email validation ( Before insert db )

class User < ActiveRecord::Base
	validates :name, presence: true, length: { maximum: 50 }

	VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
	validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }
end



5. 기타 정규식 표현


 나중에 시간이되면 해석해서 올릴게요...


 

 관련 사이트 : http://www.rubular.com/