2011-05-16 2 views
3

레거시 데이터베이스에 연결하는 레일 앱이 있습니다.레일스 앱에서 별칭을 선택하거나 AS를 선택합니다.

내가 db를 쿼리 할 때 'name'대신 'id'와 'userName'대신 'userID'와 같은 정보를 반환합니다.

나는 그냥 내 컨트롤러

 
:select=>'userID AS id, userName AS name' 

을 쓸 수있을만큼 간단 할 것이라고 생각하지만 난 그렇게 할 때, 나는 시도하고있어 필드는 반환되지 않습니다 이름을 변경 할 수 있습니다. 별칭이 아닌 다른 필드가 반환됩니다.

더 좋은 방법이 있나요? 모델의 필드 이름에 별명을 붙일 수 있습니까?

답변

4

왜 당신은 당신의 모델

class User < ActiveRecord::Base 
    set_primary_key "userID" 
    #Use alias_attribute to define your columns to ActiveRecord standards. 
    alias_attribute "name", "userName" 
end 

에 변경 사항을 정의 해달라고 아니면 시스템 권장 경로를 사용하여 서버의 데이터베이스에 대한 뷰를 작성할 수 있습니다.

자세한 내용은 http://www.slideshare.net/napcs/rails-and-legacy-databases-railsconf-2009

관련 문제