두 모델, Team
및 Plan
있습니다. 팀은 계획과 많은 관계를 맺고 있으며 계획에는 많은 팀이 있고 각 팀마다 하나의 계획이 있습니다. 그것은 다음과 같습니다 : 나는 청구를 되풀이 Stripe을 사용하고, 나는 스트라이프와 동기화 내 응용 프로그램을 유지하기 위해 [webhooks][2]
을 사용하고레일 4 - 설정 belongs_to 관계가 작동하지 않습니다
#Plan
has_many :teams
#Team
belongs_to :plan
. 스트라이프 이벤트를 받으려면 [stripe_event][3]
을 사용하고 있습니다. 구독이 생성되면 새로 만든 구독 계획으로 계획을 설정하려고합니다.
events.subscribe 'customer.subscription.created' do |event|
team = Team.find_by_stripe_customer_id(event.data.object.customer)
create_subscription_for_team(team, event.data.object)
# In this methods I want to set my plan
set_team_plan(team, event.data.object.plan)
end
def set_team_plan(team, plan)
team_plan = Plan.find_by_stripe_id(plan.id)
team.update_attribute(plan_id: team_plan.id)
end
은 내가 볼 수있는 오류를 얻을하지 않습니다,하지만 계획은 업데이 트하지 않는 것 : 나는 스트라이프 이벤트 customer.subscription.created
을 얻을 때 나는 다음을 수행합니다. 나는 또한 시도했다 :
team.plan = team_plan
team.save!
그러나 이것은 나에게 같은 결과를 준다. 로그했을 때 나는 team_plan
이 정확한 계획이며 nil이 아님을 확인했습니다.
내가 뭘 잘못하고 있는지에 대한 아이디어가 있습니까? 역 관계를 추가
감사합니다. 예, 저장하려고했습니다. ('! '은 그가 여기있는 타입이 아니며, 이제는 내 질문을 업데이트했다). 'inverse_of'를 설정했을 때'ActionView :: Template :: Error (계획의 팀 (계획에서 팀)에 대한 역 연관성을 찾을 수 없음) : – Anders
@Anders Typo - inverse_of를 사용하십시오 : teams 복수형) – joelparkerhenderson
사실 그것은 다른 것과 관련이 있습니다. 내 '팀'모델에는 기본 '계획'을 설정하는 'before_create'가있었습니다. 이 작업은 내 계획이 어떤 이유로 생성 될 때도 호출되었습니다. – Anders