2012-10-15 3 views
0

속성에 대한 열을 지정할 수 있습니까? 데이터베이스가 매우 큰Rails3에서 모델 속성에 대한 열을 지정 하시겠습니까?

NAME, COUNTRY 

나는 다음과 같이 대문자 만 이상 열이 : 내가 좋아하는 뭔가가있다. 그래서 그들을 참조 할 :

attr_accessible :name, :country 

경우 : 이름 = 열 이름. Model.NAME 대신 Model.name을 선호합니다. 구조 파일의 모든 열 이름을 다운 케일 수는 없습니다.

+0

참조 http://stackoverflow.com/questions/4014831/alias-for-column-names-in-rails –

+0

감사합니다. –

+0

CAPITALIZED 열 이름을 모두 소문자 열 이름으로 바꾸려면 마이그레이션을 작성 하시겠습니까? 그렇다면 모델 구성을 생각할 필요가 없습니다. 또한 마이그레이션에서 리플렉션을 사용하여 매우 작은 코드로이 작업을 수행 할 수 있습니다. 그렇다면, 나는 그것에 도울 수 있습니다. – Samiron

답변

1

원하는대로하는 것이 좋습니다.

rails g migrate RenameColumnsOfPosts 

다음은 마이그레이션 up 방법 (테이블 이름에 따라 내 예에서, 메신저 Posts 테이블에 적용 변경합니다.)
:

명령은 마이그레이션을 생성합니다. 여기에 모든 열 이름을 가지고 각각을 위해 나는 그것을 적용하기 위해 rename_column을 적용하고 있습니다.

class RenameColumnsOfPosts < ActiveRecord::Migration 
    def up 
    Post.columns.map(&:name).each do |column_name| 
     rename_column(:posts, column_name, column_name.downcase) 
    end 
    end 

    def down 
    #You can do the opposite operation here. Leaving on you 
    end 
end 

저는 개인적으로 실행하지 않았기 때문에 약간의 변경이 필요할 수 있습니다. 그래서 그것으로 시작해서 어떤 문제에 직면하면 알려주세요.

+0

나는 50 개가 넘는 테이블을 가지고 있습니다. 이 방식으로 각 테이블을 자동으로 실행하는 방법이 있습니까? –

+0

이 50 개의 테이블 모두에 대해 Model 클래스가 있습니까? – Samiron

+0

아니요. SQL 덤프에서 가져오고 있습니다. 가져 오기 전에 전체 SQL 구조 파일을 다운 큐브하는 것이 더 좋을 것이라고 생각하십니까? –

0
Please write code inside of model , 
it's just for demostration code,after you get it and update as per logic : 

This Code inside of model : 
... 
attr_accessor :name,:country 
before_save :fill_save 
.. 
#assign variable like ... 
def fill_save 
     self.NAME= self.name 
     self.COUNTRY= self.country 
    end 
.... 
+0

안녕하세요. 이 문제에 대한주의 사항은 알고 있습니까? –

관련 문제