복붙노트

[RUBY-ON-RAILS] 어떻게 레일에 모델 속성이 발견합니까?

RUBY-ON-RAILS

어떻게 레일에 모델 속성이 발견합니까?

나는 어려운 쉽게 명시 적으로 내 클래스 파일에 정의되어 있지 않기 때문에, 속성 내 모델의 모든 클래스에 존재 / 속성을 확인하려면 발견하고있다.

모델 속성을 발견하기 위해, 나는 열려있는 schema.rb 파일을 유지하고 그리고 어떤 코드를 필요에 따라 내가 쓰고 있어요 사이에 플립. 이 작품 그러나 나는 특성을 데리러 스키마 파일을 읽는 사이를 전환 할 수 있기 때문에 투박는 모델 클래스 파일 방법을 확인하고 내가 속성 및 메서드를 호출 쓰고 있다는 어떤 새로운 코드입니다.

내 질문은 어떻게 처음 코드베이스 레일을 분석 할 때 모델 속성을 발견 할입니까? 당신이 schema.rb 파일이 모든 시간을 열 유지하거나 지속적으로 스키마 파일 및 모델 파일 사이의 점프를 포함하지 않는 더 나은 방법이 있습니까?

해결법

  1. ==============================

    1.스키마 관련 물건

    스키마 관련 물건

    Model.column_names         
    Model.columns_hash         
    Model.columns 
    

    인스턴스 변수의 / 증강 현실 객체의 속성

    object.attribute_names                    
    object.attribute_present?          
    object.attributes
    

    슈퍼 클래스의 상속없이 인스턴스 메소드의 경우

    Model.instance_methods(false)
    
  2. ==============================

    2.모델 파일의 상단에 모델 속성을 생성 주석 모델이라고의 플러그인 레일,가 여기 링크가 있습니다:

    모델 파일의 상단에 모델 속성을 생성 주석 모델이라고의 플러그인 레일,가 여기 링크가 있습니다:

    https://github.com/ctran/annotate_models

    동기화 주석을 유지하기 위해, 당신은에 대한 작업을 쓸 수 있습니다 각 배포 한 후 주석을 모델 재 - 생성합니다.

  3. ==============================

    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. ==============================

    4.조각 다음 모델 I의 사용을 설명하려면

    조각 다음 모델 I의 사용을 설명하려면

    Model.columns.collect { |c| "#{c.name} (#{c.type})" }
    

    다시 말하지만 이것은 당신이 찾고 있다면 꽤 당신이 저점 마이그레이션을 진행하거나 속성의 의견에 좋은 충분했다 전에 개발자 호핑없이 액티브 설명하는 인쇄입니다.

  5. ==============================

    5.

    some_instance.attributes
    

    출처 : 블로그

  6. from https://stackoverflow.com/questions/1289557/how-do-you-discover-model-attributes-in-rails by cc-by-sa and MIT license