레일에서 문제가 발생합니다. 두 모델 (주문 및 상태) 간의 기본 관계는 많은 관계가 있습니다. 이 모델은 다음과 같이 :"새 인스턴스를 만들 때 이름이 nil : NilClass"에 정의되지 않았습니다.
class Order < ActiveRecord::Base
has_many :products, :through => :lines
has_and_belongs_to_many :statuses
default_scope order("#{table_name}.created_at desc")
end
및 주문 내 인덱스 뷰 내에서
class Status < ActiveRecord::Base
has_and_belongs_to_many :orders
end
, 나는 그러나, 주문의 가장 최근 상태, 그래서 order.statuses.last.name을 표시하고있어, 새 주문을 만들 때 오류가 발생합니다. 이 오류는 정의되지 않은 메소드 이름에 대한 것입니다. 새 주문은 처음 만들 때 관계가 없습니다.
제 질문은 새 주문을 저장하기 전에 제 두 모델 간의 관계를 초기화하는 방법이 있습니까? 내 주문이 항상 내 상태 수집의 첫 번째 상태를 유지하고 싶지만 저장하기 전에 수작업으로 확인해야 할 필요는 없습니다. 좋은 조치
오류 : 내 생각에이 라인에 대한
undefined method `name' for nil:NilClass
: 모든
<td><%= order.statuses.last.name %></td>
감사합니다.
음,'statuses'를 초기화하기 위해 당신은 그것을 하드 코딩하거나 데이터베이스를 공격해야합니다. 그렇다면 단순히 저장하고 다음 단계로 이동하지 않는 이유는 무엇입니까? 상태 배열을 캐시에 저장하지 않고 순서대로 초기화하지 않는 한. 감사 표시. – Jeremy