이 모델 사이의 연결을 만들려면 :레일 - 간단하게하기 위해 난 그냥 같이 그들을 유지 나는 분명히 더 속성이이 모델을 가지고 있지만 (그러나 "이메일"에하지 "ID"기준)
class User < ActiveRecord::Base
has_many :subs, :foreign_key => :email, :class_name => "subs"
end
class Subscription < ActiveRecord::Base
belongs_to :plan
belongs_to :user
end
subscriptions
테이블에는 이라는 열이 있습니다. 이 열은 사용자를 가리키며은 단일 사용자의 전자 메일 주소와 일치합니다 (두 테이블 모두 고유 한 열 email
).
email
값을 기반으로 두 모델 간의 연결을 만들어야합니다. 나는이 쿼리를 실행하려고 할 때 (그리고 모든 가입을 얻기 위해 현재 사용자 로그인) :
<%= current_user.subs.inspect %>
을 나는이 오류 메시지가 얻을 :
uninitialized constant User::subs
내가 너희들을 부탁하고 싶습니다를 이 협회와 함께 나를 도왔습니다.
감사
나는 (당신이 제안한) 이것 역시 시도했지만 출력은'#'->하지만'subscriptions' 테이블에는이 사용자의 이메일. –
user984621
방금 생성 된 SQL 쿼리를 확인했습니다 : SELECT 구독. * FROM subscriptions WHERE subscriptions.email = 1' - 명백히 틀린데, '1' 대신 전자 메일 주소가 있어야합니다. 외래 키가'email' 인 경우 쿼리에서 이메일 주소 대신 ID를 어떻게 사용할 수 있습니까? – user984621
@ user984621 내 게시물은 사용자가 얻는 기본 오류 즉, 초기화되지 않은 상수 인 User :: subs 만 응답합니다. 어떤 라인에서이 에러를 보았습니까?'? –
Pavan