2011-04-30 8 views
0

저는 Dungeons and Dragons 문자 데이터베이스에서 작업하고 있습니다. 두 가지 모델, 특성 및 통계가 있습니다. 각 캐릭터가 한 세트의 통계를 가지고있는 곳에서 이것이 작동하기를 바랍니다. 문제는 새로운 캐릭터를 만들 때 모든 캐릭터가 동일한 통계 정보를 공유한다는 것입니다. 이것은 아마도 해결하기가 매우 쉬운 문제 일지 모르지만 나는 그것에 대항해서 머리를 쥐고 있었고 그것을 이해할 수 없었다. 종속 => :모델 연관에 대한 질문

클래스 문자 < 액티브 :: 자료
    has_many : 통계,

가 여기에 캐릭터 모델에서 코드의 파괴

다음은 통계 모델에서 코드입니다 :

클래스 통계 < ActiveRecord :: Base
    belongs_to : 문자

문자를 볼 때 통계 모델을 표시하기위한 적절한 코드는 무엇입니까? link_to 또는 render 태그를 사용해야합니까? 감사!

<ul> 
    <% @character.statistics.each do |stat| %> 
    <%= render :partial => "characters/statistic", :object => stat %> 
    <% end %> 
</ul> 

그런 다음 당신이해야합니다 : 부분적으로 사용하는 것이 더 나은

<ul> 
    <% @character.statistics.each do |stat| %> 
    <li><%= stat %></li> 
    <% end %> 
</ul> 

은 다음과 같습니다

답변

0

그들 중 많은 사람들이 있기 때문에, 당신은 루프 또는 뭔가를 사용해야합니다 응용 프로그램/뷰/문자/_statistic.html.erb :

<li><%= statistic %></li> 

당신이 통계는 다른에 렌더링 코드를 사용할 수있는이 방법 장소도.

+0

도움을 주셔서 감사합니다! 그래도 또 다른 질문입니다. 각 캐릭터는 하나의 통계 모델 인스턴스 만 가지므로 has_many를 선언해야합니까? 처음에는 has_one이 갈 길이라고 생각했지만, 캐릭터 인스턴스가 하나 이상 있기 때문에 has_many가되어야한다고 생각했습니다. 어느 것이 올바른 길입니까? – illbzo1

+0

문자에 하나의 통계 만있는 경우 has_one을 사용하는 것이 좋습니다. 각 통계가 많은 문자에 속하거나 시스템에 여러 문자가 포함된다는 것을 의미합니까? – robbrit

+0

시스템에 여러 문자가 있습니다. 나는 각 캐릭터가 한 세트의 통계를 가지므로 각 캐릭터가 통계 모델의 한 인스턴스를 갖기를 원할 것입니다. – illbzo1