내 뷰에서 연결을 사용할 수없는 문제가 있습니다.중첩 된 모델은 Devise 뷰에서 사용할 수 없음
내 모델은 다음과 같습니다
:user has_many :subscriptions
:subscription belongs_to :user
내가 고안은 내가하고 싶은 이용자들이 무엇을
에 대한 인증 등을 관리하기 위해 사용하고 있습니다 : 등록 과정에서 새 사용자를 생성 할 때를, 나는 또한 해당 사용자에 대한 구독을 만들고 싶습니다. 연관된 구독을 초기화하지 않습니다 기본적으로 Devise::RegistrationsController#new
때문에, 내가 만든 내 자신의 RegistrationsController
:
class RegistrationsController < Devise::RegistrationsController
def new
super
resource.subscriptions.build
logger.debug resource.subscriptions.inspect
end
end
Subscription
개체가 성공적으로 만들어 졌는지가 확인 디버그 문 :
[#<Subscription id: nil, user_id: nil, chargify_subscription_id: nil, chargify_product_handle: nil, created_at: nil, updated_at: nil>]
문제 : 보기에서 resource.subscriptions
은 존재하지 않습니다.
--- !ruby/object:User
attributes:
name:
encrypted_password: ""
created_at:
updated_at:
last_sign_in_ip:
last_sign_in_at:
sign_in_count: 0 last_name:
current_sign_in_ip:
reset_password_token:
current_sign_in_at:
remember_created_at:
reset_password_sent_at:
chargify_customer_reference:
first_name:
email: ""
attributes_cache: {}
changed_attributes: {}
destroyed: false
marked_for_destruction: false
new_record: true
previously_changed: {}
readonly: false
이 있습니까 : 내가보기에 resource
를 검사하는 경우, 나는 그것의 자신의 속성하지만 협회을 모두 포함하는 User
개체를 얻을 다음
debug(resource)
부여합니다 (그것은 관련 subscriptions
이 있어야합니다) 내가 누락되었거나, Devise가 사용하는 resource
메카니즘에 관한 이상한 점이있어, 뷰가 관련에서 사용 가능하지 않게합니까?
감사합니다.
편집 : 양식을 렌딩하기 전에 내보기에 resource.subscriptions.build
을 추가하면 정상적으로 작동합니다. 그러나 나는 그런 종류의 논리가 관제자가 아니라 관제탑에 속해 있다고 생각합니다. 그리고 저는 그 관측소가 관측소에 놓일 수 없도록하는 것을 알고 싶습니다.