Rails의 다중 모드 연결 이해
이것은 무엇입니까?
Rails 과제를 수행하고 있습니다.폴리모피크 연관을 사용하라는 지정이 있었지만'폴리모피크 연관이 무엇인지'를 이해하지 못해 배운 것을 노트에 정리하기로 했다.
또한 해당 Rails 버전은
5.2.3
입니다.개요
polymorphic는'다형적, 다형적'이라는 뜻으로 학술 분류에서 자주 사용하는 단어인 것 같습니다.
Rails Guide에 따르면 다중모드적 관련성은 무엇입니까
하나의 연관을 통해서만 하나의 모델이 여러 개의 다른 모델에 속한다는 것을 나타낼 수 있습니다
...연관성
다중모드belongs_to는 다른 모델에서 얻을 수 있는 인터페이스를 설정한 성명으로도 여겨질 수 있다.
그렇다고 합니다.
또한 근거설치할 때 참고한 이 문장
이처럼'서로 다른 것은 고정된 행위/입력과 출력이 있어 똑같이 처리할 수 있다'고 오리구이 타자라고 불린다.그런 다음 [고정된 동작] [입출력의 정의]를 인터페이스라고 합니다.
그렇다고 합니다.
ER 그림
구체적인 코드를 보고 싶습니다.
이번에는 사용자에 대한 알림 기능이 설치되었다.로그인 중인 사용자가 자신에게
그림으로 표현하면 이런 느낌이에요.
예를 들어
comments
과activities
사이에는 ER 그림의 선이 없지만 comment.activity
형식으로 comments
에서 activities
의 실례를 얻을 수 있다.실제로 유선이 없는 곳에서도 자유롭게 연락할 수 있을 것 같다는 게
polymorphic(多形性の、多型の)
이름의 유래죠.옮기다
우선 이전부터 제작한다.실제 제작의 이전은 다음과 같다.
class CreateActivities < ActiveRecord::Migration[5.2]
def change
create_table :activities do |t|
t.references :user, foreign_key: true
t.references :subject, polymorphic: true
t.integer :action_type, null: false
t.boolean :read, null: false, default: false
t.timestamps
end
end
end
subject
열의 polymorphic: true
옵션은 점입니다.Rails Guide에도
reference
형이 아닌 이동의 묘사법이 기재되어 있지만 여기가 좀 복잡해서 이번에 reference
형으로 바뀌었다.구체적인 코드 (연결)
연관은 다음과 같이 정의됩니다.또 다중모드와 관련이 없는 기재를 제외하고는
class Activity < ApplicationRecord
belongs_to :subject, polymorphic: true
end
class Comment < ApplicationRecord
has_one :activity, as: :subject, dependent: :destroy
end
class Like < ApplicationRecord
has_one :activity, as: :subject, dependent: :destroy
end
class Relationship < ApplicationRecord
has_one :activity, as: :subject, dependent: :destroy
end
예:$ rails c
> comment = Comment.first
> comment.activity
=> nil # activityのインスタンスがあればそれが表示される
에서 설명한 대로 해당 매개변수의 값을 수정합니다.그리고 아직 activity
의 실례가 없기 때문에 표시할 수 없습니다.> a = Activity.first
> a.subject
# => comment や like や relationship のインスタンスが取得可能
...유형의 여러 유형 매개 변수를 가진 착색기의 컴파일러에서 발생할 수 있는 고장입니다.또한 부류
as: xxxx
에 지정된 명칭은 activity(子クラス)
에서 부류(이번 상황에서comment,like,relationship)의 실례를 얻을 수 있다.복잡하니까 틀리지 말자고
이번에는 이걸로'알림 기능'을 만들었는데 그쪽 코드가 기재되면 기사가 길어지기 때문에 자세한 내용은 다음 기사에 넘기고 싶어요
[추기] 다음 기사 여기 있습니다!
polymoffic와 관련된 기사를 소개합니다!
https://spice-factory.co.jp/development/has-and-belongs-to-many-table/
Reference
이 문제에 관하여(Rails의 다중 모드 연결 이해), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tanutanu/items/726e7097c6ca4a9ca6e3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)