'find_by'에 해당되는 글 2건

  1. 2007.04.17 Railscasts 정리(13~18장)
  2. 2007.04.13 Railscasts 정리(1~6장)
13장.Dangers of Model in Session

session에 모델을 넣으면 데이터베이스와 일치하지 않는경우가 발생됨.
그래서 id만을 저장하고 그이후에 fetch하는것이 올바른 방법.


14장.Performing Calculations on Models

associations에서 계산방법을 향상시키는 방법.


15장.Fun with Find Conditions

find_by 매소드를 이용하여 좀더 편하게 검색하기


16장.Virtual Attributes


이름과 같은 경우 성과 이름이 따로 떨어져 있는데
이름이란 가상속성을 만들어서 사용하는방법.


17장.HABTM Checkboxes

habtm에서 check box를 만드는방법.


18장.Looping Through Flash


flash는 보통 오류메세지를 보낼때 사용되는데
여러개의flash메세지가 보여질경우 loop을 이용하는 방법.
Posted by 전용우
,

1.Caching with Instance Variables

User.find(session[:id]) 이렇게 사용하면 매번 쿼리를 날리지만
@current_user ||=  User.find(session[:id]) 이렇게 하므로서 없을때만  DB에 접속.

2.Dynamic find_by Methods

@tasks = Task.find(:all,:conditions => ['complete = ?',false])
이렇게 쓰는것을 아래 처럼 dynimic_find_by methdod를 이용하여 좀더 의미있게 바꿈
@tasks = Task.find_all_by_complete(false)

3.Find Through Association

htm에서
@project = Project.find(param[:id])
@tasks = Task.find(:all,:conditions => ['project_id =? AND complete = ? ',@project.id,false])
이런식으로 사용되는데 아래와 같이 바꿀수 있음
@tasks = @project.tasks.find_all_by_complete(false);

4.Move Find into Model


Task controller에서
@tasks = Task.find_all_by_complete(false,:order => 'created_at DESC)

이렇게 사용하는데 이것을 Task model의 클래스 매소드를 이용하여
def self.find_incomplete
  find_all_by_complete(false, :order => 'created_at DESC')
end

@tasks = Task.find_incomplete 이렇게 수정할수있고

project controller에서도
@tasks = Task.find_all_by_complete(false,:order => 'created_at DESC)
->@tasks = Task.find_incomplete
이렇게하면 좀더 의미있는 매소드로 만들수 있고 재사용하기 편함.

5.Using with scope(유용)

커스텀된 find메소드에 with_scope을 이용하여 파마메터를 전달하는 방법.

6.Shortcut Blocks with Symbol to_proc

블록사용을 좀더 쉽게하는 방법
find(:all).collect{|p| p.name}
이렇게 사용하는데
find(:all).collect(&:name)이렇게 사용하는거랑 같은 표현.

참고사이트:Railscasts

거의 애자일 레일즈에서 본내용인데 그냥 정리하는 차원에서 정리 좀 해야겠다.
나머지는 낼.

Posted by 전용우
,