문제

나는 자기 참조 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>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top