2017-12-07 9 views
0

다형성 앨리어스 협회 레일.내가이 연결을 설정하려고하고 싶은

#this seems fine 
campus = Campus.last 
campus.courses 

#this dosent make much sense gramatically 
student = Student.last 
student.courses 

캠퍼스는 코스를 제공하지만 학생에게는 과목이있는 코스가 없습니다. 이제는 그들이 잘 읽지 못하는 커버 아래에서 똑같은 것입니다.

어떻게하면 student.subejectsstudent.courses과 같은 결과를 얻을 수 있습니까?

+2

'alias_method : 주제 : courses' 또는'별명 대상은 courses'이 경우

, 당신은 뾰족한 클래스가 무엇인지 액티브에게 있습니다. – mudasobwa

+1

_Sidenote : _ 기호 키가있는 해시에는 해시 로크 구문을 사용하지 않습니다. 10 년 전에는 사용되지 않습니다. 대신'as : : subjectable'을 사용하십시오. – mudasobwa

+0

맞습니다. 위의 예제를 다른 게시물에서 복사했지만, 찾고 있던 답을 얻기 위해 질문을 수정했습니다. 대단히 감사합니다. @mudasobwa – TheLegend

답변

0

원하는대로 연결 이름을 지정할 수 있습니다. 관련 클래스를 변경하지 않아도됩니다.

# app/models/student.rb 
class Student < ActiveRecord::Base 
    has_many :subjects, as: :subjectable, class_name: 'Course' 
end