[RUBY-ON-RAILS] 어떻게 레일에 모델 속성이 발견합니까?
RUBY-ON-RAILS어떻게 레일에 모델 속성이 발견합니까?
나는 어려운 쉽게 명시 적으로 내 클래스 파일에 정의되어 있지 않기 때문에, 속성 내 모델의 모든 클래스에 존재 / 속성을 확인하려면 발견하고있다.
모델 속성을 발견하기 위해, 나는 열려있는 schema.rb 파일을 유지하고 그리고 어떤 코드를 필요에 따라 내가 쓰고 있어요 사이에 플립. 이 작품 그러나 나는 특성을 데리러 스키마 파일을 읽는 사이를 전환 할 수 있기 때문에 투박는 모델 클래스 파일 방법을 확인하고 내가 속성 및 메서드를 호출 쓰고 있다는 어떤 새로운 코드입니다.
내 질문은 어떻게 처음 코드베이스 레일을 분석 할 때 모델 속성을 발견 할입니까? 당신이 schema.rb 파일이 모든 시간을 열 유지하거나 지속적으로 스키마 파일 및 모델 파일 사이의 점프를 포함하지 않는 더 나은 방법이 있습니까?
해결법
-
==============================
1.스키마 관련 물건
스키마 관련 물건
Model.column_names Model.columns_hash Model.columns
인스턴스 변수의 / 증강 현실 객체의 속성
object.attribute_names object.attribute_present? object.attributes
슈퍼 클래스의 상속없이 인스턴스 메소드의 경우
Model.instance_methods(false)
-
==============================
2.모델 파일의 상단에 모델 속성을 생성 주석 모델이라고의 플러그인 레일,가 여기 링크가 있습니다:
모델 파일의 상단에 모델 속성을 생성 주석 모델이라고의 플러그인 레일,가 여기 링크가 있습니다:
https://github.com/ctran/annotate_models
동기화 주석을 유지하기 위해, 당신은에 대한 작업을 쓸 수 있습니다 각 배포 한 후 주석을 모델 재 - 생성합니다.
-
==============================
3.방금 데이터베이스에서 속성 및 데이터 유형에 관심이 있다면, 당신은 Model.inspect를 사용할 수 있습니다.
방금 데이터베이스에서 속성 및 데이터 유형에 관심이 있다면, 당신은 Model.inspect를 사용할 수 있습니다.
irb(main):001:0> User.inspect => "User(id: integer, email: string, encrypted_password: string, reset_password_token: string, reset_password_sent_at: datetime, remember_created_at: datetime, sign_in_count: integer, current_sign_in_at: datetime, last_sign_in_at: datetime, current_sign_in_ip: string, last_sign_in_ip: string, created_at: datetime, updated_at: datetime)"
또한, 갈퀴 DB를 실행 한 : 만들고 레이크 DB : 마이그레이션을 개발 환경, 데이터베이스 구조에 대한 신뢰할 수있는 소스를 포함 할 파일 dB / schema.rb :
ActiveRecord::Schema.define(version: 20130712162401) do create_table "users", force: true do |t| t.string "email", default: "", null: false t.string "encrypted_password", default: "", null: false t.string "reset_password_token" t.datetime "reset_password_sent_at" t.datetime "remember_created_at" t.integer "sign_in_count", default: 0 t.datetime "current_sign_in_at" t.datetime "last_sign_in_at" t.string "current_sign_in_ip" t.string "last_sign_in_ip" t.datetime "created_at" t.datetime "updated_at" end end
-
==============================
4.조각 다음 모델 I의 사용을 설명하려면
조각 다음 모델 I의 사용을 설명하려면
Model.columns.collect { |c| "#{c.name} (#{c.type})" }
다시 말하지만 이것은 당신이 찾고 있다면 꽤 당신이 저점 마이그레이션을 진행하거나 속성의 의견에 좋은 충분했다 전에 개발자 호핑없이 액티브 설명하는 인쇄입니다.
-
==============================
5.
some_instance.attributes
출처 : 블로그
from https://stackoverflow.com/questions/1289557/how-do-you-discover-model-attributes-in-rails by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 나는 그것을 제거에 무엇을 ". 응답 본문의 내용 길이를 결정할 수 없습니다 WARN"평균 얼마나됩니까? (0) | 2020.02.10 |
---|---|
[RUBY-ON-RAILS] 열에서 선택 고유 한 값 : 레일 (0) | 2020.02.10 |
[RUBY-ON-RAILS] 조건 NIL을 NOT 사용하는 경우 레일 (0) | 2020.02.10 |
[RUBY-ON-RAILS] 유증 여러 "사용자"모델 (0) | 2020.02.10 |
[RUBY-ON-RAILS] 레일 - 중첩은 활성 레코드에 포함? (0) | 2020.02.10 |