2013-10-11 4 views
3

일부 모델을 생성하려고하지만 속성없이 생성됩니다. 나는 리눅스 시스템과 레일 버전을 사용하고레일이 빈 모델을 생성하는 이유는 무엇입니까?

은 다음과 같습니다

rails g scaffold Bsdsd description:string test:string oaso:integer 

: 레일 4.0.0

내가이 명령을 사용하여 모델을 생성하기 위해 노력했습니다 레일 --version 및

rails g model Asdsd description:string test:string oaso:integer 

이 빈 클래스 모델의 다른 모든 것들 확인하는 첫 번째 결과 :

,
class Bsdsd < ActiveRecord::Base 
end 

테스트 파일, 마이그레이션 파일 (즉, 속성을 포함)이 클래스 모델의 두 번째 결과 :

class Asdsd < ActiveRecord::Base 
end 

어떻게이 문제를 해결 할 수

?

+0

생성 된 모델에 포함될 것으로 예상되는 내용은 무엇입니까? –

+0

class Adress Alexandre

+5

아니요, 레일스가 대신 해드릴 수 없습니다. 접근성을 직접 정의해야하며 그렇지 않으면 기본적으로 모든 필드는 기본적으로 attr_accessible입니다. –

답변

6

모델 속성은 데이터베이스 열에서 추론되므로 모델 클래스에서 모델 속성을 지정할 필요가 없습니다. 당신이 가지고 레일 3.2에서

(내가 정확히 기억 경우)

# attr_accessible :description, :test, :oaso 

라인이 생성됩니다. 그러나 Rails 4.0에서는 보호 속성이 더 이상 사용되지 않으며 강력한 매개 변수 메커니즘으로 대체되었습니다.

+0

4.0 레일 버전 때문인가요? 지금은 레일을 배우고 있지만, 3.2 버전에서는 틀린 것이 아니라면 속성을 만들지 말았습니까? 감사합니다 – Alexandre

+1

@ Alexandre 나는 내 대답을 편집했습니다. –

2

아무 것도 잘못되었습니다. 하지만 잘못된 파일을 확인하고 있습니다. 파일합니다 (마이그레이션 디렉토리에) CreateAsdsdsMigration을 찾아 당신이 자동 생성이 필드 Grails의 또는 장고에서 오는 사람들을 위해

+2

그래서 모델 클래스에 어떤 속성도 기대해서는 안됩니까? 그것은 단지 데이터베이스 필드를 반영합니까? 고맙습니다 – Alexandre

0

볼, 레일는 로마인이 아닌 다른 방법으로 주위의 데이터베이스를 작성 있습니다, domainclass.groovy 또는 models.py는 정의한 후에 데이터베이스 테이블을 생성합니다. yourapp/db/schema.rb를 찾고 내부는 모든 클래스와 필드 정의입니다.

관련 문제