나는 단순한 개념 인 것처럼 보이는 것에 고심하고 있습니다. 단일 항목을 얻을 액티브 쿼리를 사용 후, 해당 항목의 속성에 액세스하고 싶지만 전무에 대한 정의되지 않은 메서드`MSG를 '점점 오전 : NilClassActiveRecord.find로 발견 된 객체의 속성에 액세스하기
다음과 같이 내가 사용 모델은 다음과 같습니다
Provider.lastActive 및 provider.histories.active.recent.first :class Provider < ActiveRecord::Base
attr_accessible :alias, :name
validates :name, :presence => true
has_many :histories
def lastActive
return History.where(:provider_id => self.id).last
end
end
및
class History < ActiveRecord::Base
belongs_to :provider
attr_accessible :available, :msg
scope :active, where(:available => true)
scope :recent, :limit => 1, :order => 'created_at DESC'
end
그래서, 나는 주어진 공급자에 대한 가장 최근의 역사 항목에서 얻을 수있는 두 가지 방법이있다. 두 가지 모두 반환되는 History 개체의 특성 중 하나를 얻을 수 없습니다. ERB 방법에 Provider.lastActive를 사용
같이 :
<%= provider.lastActive.msg %>
수익률 정의되지 않은 메서드`MSG '무기 호에 대한 : NilClass
그러나,
는<%= provider.lastActive.inspect %>
뭔가를 얻을 수 like :
> #<History id: 35, available: true, when: nil, msg: "my message", provider_id: 1, created_at: "2012-09-18 07:12:50", updated_at:
> "2012-09-18 07:12:50">
내가 여기 실종 무엇
provider.histories.active.recent.first & provider.histories.active.recent.first.inspect
: 같은 역사의 범위를 사용
같은 결과는? Model.find.last를 수행 한 후 왜 cant는 반환 된 모델의 속성에 액세스합니까?
attr_accessible :available, :msg
그것은 옳지 않아
과 의지 : 당신은 확실히 선을 제거 할
Model.find.last.some_attribute
된 승인을! 나는 그 문제를 발견했다. 내역이없는 일부 공급자가 있습니다. 그래서, 때로는 무명 obj가 있습니다. 도! 지금은 무 처리를 위해 이것을 사용하고 있습니다 : <% = provider.lastActive.msg provider.lastActive.nil? %> 다른 아이디어 환영합니다 – mmeyer