routes.rb 에서 nested 라우팅 관리를 하다보면 아래와 같은 경우가 종종 생긴다. resources :messaged doresources :commentsresources :categoriesresources :tagsend resources :posts doresources :commentsresources :categoriesresources :tagsend resources :items doresources :commentsresources :categoriesresources :tagsend comments, categories, tags 와 같은 똑같은 resources 가 중복되어 사용되는 경우 concern method를 이용하여 간단히 나타낼 수 있다. concern :soci..
app/views/users/index.html.erb app/views/users/_user.html.erb app/controllers/users_controller.rbclass UsersController < ApplicationControllerdef create@user = User.new(params[:user])end def destroy@user = User.find(params[:id])@user.destroyendend app/views/create.js.erb$('div#users').append("");... app/views/users/destroy.js.erb$('#').fadeOut();
N+1 Query Problem예를 들어 Client 모델에 관계되어 있는 address 모델에서의 postcode를 뽑을 때 아래와 같은 코드를 사용하면,clients = Client.limit(10)clients.each do |client|puts client.address.postcodeend겉으로는 괜찮아 보이나 11번의 SQL 쿼리를 실행하는 안타까운 점이있다.Client Load (0.1ms) SELECT * FROM "clients" LIMIT 10 Address Load (0.2ms) SELECT * FROM "address" WHERE "client_id" = 1Address Load (0.2ms) SELECT * FROM "address" WHERE "client_id" = 2...A..
기본적인 문법 class PostsController < ApplicationControllerdef edit@post = Post.find(params[:id])if session[:user_id] != @post.user_idflash[:notice] = "Sorry, you can't edit this post"redirect_to post_pathendendend 대체가능한 문법class PostsController < ApplicationControllerdef edit@post = Post.find(params[:id])if session[:user_id] != @post.user_idredirect_to (post_path, notice: "Sorry, you can't edit this p..
기본 Create 문법 t = User.newt.name = "Jinny"t.phone = "01012341234"t.save 대체가능 Create 문법1t. = User.new(name: "Jinny"phone: "01012341234") t.save 대체가능 Create 문법2t = User.create(name: "Jinny", phone: "01012341234") 기본 Update 문법 t = User.find(3)t.name = "Jinny"t.phone = "01012341234"t.save 대체가능 Update 문법1t = User.find(3)t.attributes = {name: "Jinny"phone: "01012341234"} t.save 대체가능 Update 문법2t = User...
Rails 에서 외부 폰트의 위치 경로와 사용 시 path 입력 방법을 알아보겠습니다. 환경 : Ruby 2.0.0-p598 Rails 4.1 위의 그림과 같이 app - assets 하위에 기존의 images, javascripts, stylesheets 와 동일한 위치에 fonts 디렉터리를 생성해줍니다. 그리고 config/application.rb 에 다음과 같은 내용을 삽입해 줍니다. config.assets.paths
라즈베리파이에서 V4L2기반의 OpenCV를 설치하는 내용을 다루겠습니다. 우선 V4L2(Video4Linux2)에 대해서 설명하자면, 리눅스에서 카메라 입력을 받기 위한 표준 디바이스로서 V4L2를 설치 후 활성화 시에 사용자 프로그램이 커널을 통해 I/O요청을 확인하고 장치 드라이버로 전송이 이루어지는 것이 가능해집니다. 이러한 것처럼 사용자 프로크램이 커널을 통해 시스템 하드웨어에 접근 할 수 있도록 /dev/video0 라는 파일이 생성됩니다. 사용자는 /dev/video0 을 통해 자료을 읽거나 기타 장치로 자료를 전송이 가능합니다. (/dev/video0 의 숫자 0은 인덱스 번호입니다.) V4L2 는 OpenCV를 포함한 여러 소프트웨어들을 지원합니다. 우선 라즈베리파이에 접속을 합니다. 직..