프로젝트가있는 프로젝트 관리 시스템을 구축하고 프로젝트와 관련된 티켓을 사용자가 볼 수있는 책 (Rails 3 in action)을 읽었으며 사용자는 티켓에 대한 의견을 작성할 수 있습니다 코멘트를 작성하면 티켓의 주 (신규, 완료 등)를 나타낼 수도 있습니다. 코멘트 양식을 제출하면서rails : 모델 간의 연관에 "self"사용
사용자가 티켓의 상태를 선택하고이 상태는 어떻게 든 또한 Ticket.rb 모델에 반영되어야하므로 양식이 제출 한 후, 저자는 콜백을 사용
after_create :set_ticket_state
또한 Ticket 객체에 상태를 추가 할 Comment 클래스에 있습니다.
제 질문은이 콜백 메소드의 코드와 관련이 있습니다. 그는 주석 클래스를 참조 "자기"로
self.state
쓰기 이유는 이해하지만 그는 티켓 개체를 업데이트하려고하면 그는 "자기로,
self.ticket.state
를 사용하는 이유는 이해가 안 돼요 "여전히 Comment 클래스를 참조합니다.
나는 그가 때문에 협회
belongs_to :ticket
의 이런 식으로 할 수 있지만 그냥 추측 같은데요 가능하면 좀 더 설명을하고 싶습니다.
class Comment < ActiveRecord::Base
after_create :set_ticket_state
belongs_to :ticket
belongs_to :user
belongs_to :state
validates :text, :presence => true
delegate :project, :to => :ticket
private
def set_ticket_state
self.ticket.state = self.state
self.ticket.save!
end
end
아마도 내가 이해하지 못합니다. 내가 정말로 묻는 것은 Comment 클래스에서 "self"를 사용하여 Ticket 객체를 참조 할 수 있었던 방법입니다. 나는 "self"가 항상 참조 된 클래스를 참조했다고 생각했지만 Ticket 객체를 업데이트해야한다면 어떻게 든 Ticket을 사용해야 할 것인가? – Leahcim
'self'는 주석이고,'self.ticket'는 티켓입니다. 그래서'self.ticket.state'는 코멘트 티켓의 상태입니다. – rkb
감사합니다. 그래서 이것은 belongs_to : ticket 때문에 가능합니다. 맞습니까? – Leahcim