2011-11-17 2 views
0

우리는 기존 레거시 데이터베이스를 정렬하는 방법으로 열 이름을 변경하려고합니다. 이미 here 수정을 찾았지만 다른 방법을 시도하고 있습니다.열 이름을 선택하지 않는 레일 3을 선택하십시오.

AS 문을 사용할 수없는 것 같습니다. 내가 해봤 모든 :

@radcheck = Radcheck.find(:all, :select => 'attribute AS attr') 

과 : 나는 콘솔에서 후자를 실행하면

@radcheck = Radcheck.find_by_sql("select attribute AS attr from radcheck") 

, 확인을 작동하는 것 같다하지만 출력이 올바르지 않습니다 :

irb(main):076:0* @radcheck = Radcheck.find_by_sql("select 'username, attribute AS attr' from radcheck") 
    Radcheck Load (22.4ms) select 'username, attribute AS attr' from radcheck 
=> [#<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >] 

내가 여기서하고있는 바보 같은게 있니?

+0

아니요, 올바르게 보입니다. 어떤 DB 서버를 사용하고 있습니까? 로그에 표시된 것과 같이 생성 된 SQL은 무엇입니까? –

+0

오전에 MySQL. 따옴표없이 시도해보십시오. 내 출력물에 아무것도 표시되지 않습니다. ar에 의해 정의됩니다. 오류. –

답변

1

@radcheck 개의 요소에 액세스하려고 시도 했습니까? 이러한 속성은 inspect 메소드 (객체를 표시하려고 할 때 객체에 irb라고 함)에 의해 인쇄되지 않지만 그 속성이 표시되지는 않습니다. 예를 들어 직접 @radcheck.first.attr을 인쇄 해보십시오.

+0

그 중 하나가 작동하지 않습니다 : ( –

+0

'Radcheck.all (: select '>'속성은 attr ')'또는'Radcheck.select ('attriute attr '). all'? Btw, @@@ radcheck.to_yaml' 또는'y @ radcheck' 바로 가기를 사용하는 것이 훨씬 더 좋습니다. –

+0

이 둘 모두가 작동하지만 오직 safe_attributes gem을 사용할 때만 작동합니다. 이것은 열 이름 속성에 문제가있는 것 같습니다 그것을 바꿀 수없는 것 같습니다. –

관련 문제