자기 참조 HAS_MANY의 문제 : 철도의 연관성을 통해
-
21-08-2019 - |
문제
나는 자기 참조 Has_many에 대해 읽고있었습니다. 오늘날 데이터 상황을 통해, 나는 그것들을 사용하는 레일 애플리케이션을 만들려고 노력하고 있기 때문입니다. 나는 이것을 찾았다 예제 상황 인터넷에서, 나는 그것에 대해 질문이 있습니다. 이 사람의 블로그 에서이 예제 코드를 게시하겠습니다.
create_table :animals do |t|
t.string :species
end
create_table :hunts do |t|
t.integer :predator_id
t.integer :prey_id
t.integer :capture_percent
end
class Animal < ActiveRecord::Base
has_many :pursuits, :foreign_key => 'predator_id',
:class_name => 'Hunt',
:dependent => :destroy
has_many :preys, :through => :pursuits
has_many :escapes, :foreign_key => 'prey_id',
:class_name => 'Hunt',
:dependent => :destroy
has_many :predators, :through => :escapes
end
class Hunt < ActiveRecord::Base
belongs_to :predator, :class_name => "Animal"
belongs_to :prey, :class_name => "Animal"
end
데이터베이스에 첫 번째 동물을 나열하는 웹 페이지를 작성한다고 가정 해 봅시다. 이 제목 아래에는 백분율 목록 (capture_percent)이 있습니다. 각 백분율은이 페이지의 동물을 사냥하는 동물을 언급하지만 동물의 이름을 말하지는 않습니다. 주어진 백분율을 클릭하면 해당 동물의 페이지로 이동합니다.
이것은 당신의 머리를 감싸는 데 어려운 질문이지만, 나는 그것을 알아 내려고 노력하고 있습니다. Capturepercent를 위해 별도의 테이블을 만들어야할까요?
해결책
Capturepercent를 위해 별도의 테이블을 만들어야할까요?
전혀 그렇지 않습니다. 이것에 대해 복잡한 것은 없습니다.
<ul>
<% @animal.pursuits.each do |pursuit| %>
<li><%= link_to "#{pursuit.capture_percent}%", pursuit.prey %></li>
<% end %>
</ul>
제휴하지 않습니다 StackOverflow