2012-07-18 3 views
4
루비/레일 API를 http://api.rubyonrails.org/의 방법에 대한 설명서를 찾는 과정을 무엇

. ActiveRecord :: Base.update에 대한 문서를 찾는 방법은 무엇입니까?

는의 한 예로 방법 ActiveRecord::Base.update 보자. 그것은 railscasts 중 하나에서 사용됩니다. 자료 https://github.com/rails/rails/blob/0065f378262dc3f47880ce6211c7474bc7d11f0b/activerecord/lib/active_record/base.rb
  • 사실에 대한 소스 코드에 아무것도에 대한 update 방법있다 http://api.rubyonrails.org/classes/ActiveRecord/Base.html
  • , 심지어 찾을 수없는 클래스에 대한 API 문서의 갱신에 대한 언급이 없다

    1. 모든 클래스에서이 방법은 ActiveRecord::Base에 포함되어 있습니다.

    나는이 방법은 액티브 :: 관계에있다 생각한다. 그러나, 나는 확실하지 않다.

    저는 Ruby/Rails의 초보자입니다. 저는 자바 세계에서 왔는데, 일반적으로 클래스의 javadoc에있는 모든 메소드를 (잘 상속받을) 기대할 것입니다. Ruby/Rails의 경우 혼합 된/상속 된 메소드에 대한 가장 효과적인 문서 찾기는 무엇입니까?

    미리 감사드립니다.

  • +0

    레일 캐스트가 사용됩니까? – Dougui

    +0

    Backbone.js의 실시간 방송입니다. 코드 링크는 다음과 같습니다. https://github.com/railscasts/325-backbone-rails-part-2/blob/master/raffler-after/app/controllers/entries_controller.rb – vrepsys

    +0

    +1 놀랐습니다. "모델".all 방법에 대한 문서를 찾는 어려움과 응답자의 첫 번째 반응이 일반적인 경우에 대해 명확하게 묻는 질문에 대한 대답에 대한 답을 얻는 데 어려움이있었습니다. Javadoc 1 - api.rubyonrails.org 0 – iftheshoefritz

    답변

    3

    APIdock.에 따라 레일스 버전 2.3.8부터 메소드가 사용되지 않으므로 ActiveRecord::Base#update에 대한 좋은 문서를 찾을 수 없습니다.

    rails/activerecord/lib/active_record/relation.rb에서 볼 수있는 ActiveRecord::Relation으로 이동했기 때문에 사용할 수있는 이유가 있습니다.

    rails/activerecord/lib/active_record.rb:Relation을 포함하는 ActiveRecord에 대한 모든 autoload을 포함합니다. 다음과 같이 ActiveRecord::Relation#update에 대한

    문서는 다음과 같습니다

    객체 (또는 여러 개체)를 업데이트하고 데이터베이스에 저장, 은 검증 통과합니다. 결과 개체는 개체가 데이터베이스에 성공적으로 저장되었는지 여부에 관계없이 반환됩니다.

    ==== 매개 변수

    • + 아이디 + - 이것은 ID 또는 ID의 배열을 업데이트 할 수 있어야한다.
    • 특성 + + -이 속성 또는 해시 해시 배열되어야한다.

    ==== 예

    # Updates one record 
    Person.update(15, :user_name => 'Samuel', :group => 'expert') 
    
    # Updates multiple records 
    people = { 1 => { "first_name" => "David" }, 2 => { "first_name" => "Jeremy" } }  
    Person.update(people.keys, people.values) 
    

    편집 : 최초의 질문에 대답하기 위해, 대부분의 경우, api.rubyonrails.org에 검색을 수행하는 한, 당신이 찾고있는 정보를 찾을 충분하다 정보가 최신 인 것처럼 잠재적으로 이전의 API에 대한 자세한 내용은

    apidock.com/rails를 사용합니다.거기에 'update'에 대한 검색을 수행하면 두 버전 (::Base::Relation)이 실제로 표시되며 각각의 버전과 각 버전의 레일이 사용되는 버전에 대한 세부 정보를 제공합니다.

    +0

    정말요? ActiveRecord :: Base 코드가 아닌 믹스 인으로 옮겨 졌다고 생각했습니다. 이 방법은 효과적이며 레일즈 3.2.3을 사용하고 있다고 확신합니다. 내가 틀렸다면 Pls는 나를 바로 잡는다. – vrepsys

    +0

    그것이 작동하는 이유를 설명합니다. 감사. 그러나 원래의 질문은 방법에 대한 의사를 찾는 과정에 관한 것이 었습니다. 레일즈 코드를 실제로 알지 못하고'update'가'Relation'에 있다는 것을 알 수있는 방법이 있습니까? – vrepsys

    +0

    공식 문서보다 APIdock을 사용하여 지적한 편집을 추가했습니다. 이전 버전의 레일즈가 포함되어있어 몇 년 전인 자습서에서 배우면서 매우 편리 할 수 ​​있습니다. –

    1

    ActiveRecord :: Base.update는 더 이상 존재하지 않습니다. 여기에서 볼 수 있습니다 : http://apidock.com/rails/ActiveRecord/Base/update/class, 그것의 ActiveRecord :: 관계는 여기에 : http://apidock.com/rails/ActiveRecord/Relation/update

    +0

    존재하지 않으면 왜 작동합니까? Charles Caldwell의 대답에 대한 내 의견을 참조하십시오. – vrepsys

    +0

    ActiveRecord :: Base에는 ActiveRecore :: Relation의 메소드가 포함되어 있습니다. 출처 : https://github.com/rails/rails/blob/0065f378262dc3f47880ce6211c7474bc7d11f0b/activerecord/lib/active_record/base.rb – Dougui

    관련 문제