2014-09-01 4 views
0

주 레코드는 번호판에있는 플레이트입니다.
많은 번역 (의미 또는 의견)을 가질 수 있습니다.
1) 접시 기록을 표시하고 사용자가) 판
2 평가 기존의 모든 번역의 기록을 표시 할 수 있도록 사용자가 하나의
3 투표 수) 사용자가를 만들 수 있습니다 : 한 페이지에
는 내가 원하는 새 번역 레코드
저는 플레이트에 form_for를 사용하고 기존 번역 레코드에는 fields_for를 사용하고 있습니다.
내 연구에 따르면이 작업을 수행하는 방법이 있어야하지만 내 코드는 빈 양식을 제공하지 않는다고 제안합니다. 현재 두 번째 fields_for 루프를 시도하고 있습니다.
현재 렌더링 된 양식 페이지에만 초점을 맞추고 있습니다. 아직 입력을 처리하지 못했습니다. 마지막 입력란은 새 번역 입력에 대한 빈 상자를 표시하기위한 것이므로 마지막 번역을 대신 표시합니다.
제안 사항을 알려 주시면 감사하겠습니다. 그래서 @plate.translations가 접시에 이미 현재 번역의 집합입니다, _rate_or_vote.html.erb 확인레일스 기존의 관련 레코드를 한 페이지에 표시하는 방법을 설명하고 새로운 관련 레코드 입력을 허용합니다.

<!-- app/views/plates/_rate_or_vote.html.erb --> 
<%= form_for(@plate) do |f| %> 

<% if @plate.errors.any? %> 
    <div id="error_explanation"> 
    <h2><%= pluralize(@plate.errors.count, "error") %> 
     prohibited this plate from being updated:</h2> 
    <ul> 
     <% @plate.errors.full_messages.each do |msg| %> 
     <li><%= msg %></li> 
     <% end %> 
    </ul> 
    </div> 
<% end %> 

<h1>Rate the Plate</h1> 

<span class="form-group"> 
    <%= f.label :input_rating, "Your Plate Rating" %> 
    <%= f.select :input_rating, options_for_select(RATINGS) %> 
</span>&nbsp&nbsp 
<span class="form-group"> 
    <%= f.label :rating, "Average Rating" %> 
    <%= f.text_field :rating , :value => (number_with_precision(f.object.rating, :precision => 2) || 0) %> 
</span>&nbsp&nbsp 
<span class="form-group"> 
    <%= f.label :plate_number, "Plate Number" %> 
    <%= f.text_field :plate_number %> 
</span>&nbsp&nbsp 
<span class="form-group"> 
    <%= f.label :state, "State" %> 
    <%= f.text_field :state, class: "form-control" %> 
</span><br><br> 
<span style="background-color:#DCDCDC; color:#000000; font-style: normal; font-family:Georgia;"> 
    Contributor</span> 
<span style="border:1px solid black;padding:3pt;"> 
    <%= @plate.user.full_name %></span>&nbsp&nbsp 
<span class="form-group"> 
    <%= f.label :plate_image, "Plate Image File" %> 
    <%= f.file_field :plate_image %> 
</span><br><br> 

<h1>Existing Translations and/or Comments - You can vote for one</h1> 
<!-- %= f.fields_for :translations do |ff| %--> 
<%= f.fields_for :translations, @plate.translations do |ff| %> 
<span>Click this box to vote for this translation:</span>&nbsp 
<span><%= check_box_tag "translation_ids[]", :id %></span>&nbsp&nbsp 
<span><%= ff.label "Current votes" %> 
    <%= ff.text_field :votes, :value => (number_to_percentage(ff.object.votes/(@plate.translation_votes.nonzero? || 1) * 100, 
    precision: 0)) %> 
</span>&nbsp&nbsp 
<span style="background-color:#DCDCDC; color:#000000; font-style: normal; font-family:Georgia;"> 
    Contributor</span> 
<span style="border:1px solid black;padding:3pt;"> 
    <%= ff.object.user.full_name %></span><br><br> 
<span>Translation and/or Comment</span><br> 
<span> 
<%= ff.text_area :meaning, :cols => 60, :rows => 10 %> 
</span><br><br> 
<% end %> 

<h1>Offer a new Translation and/or Comment</h1> 
<!-- %= f.fields_for :translations do |ff| %--> 
<%= f.fields_for :translations, @plate.translations do |fff| %> 
    <div> 
<!-- %= fff.label :meaning, "Translation" %--> 
    <%= fff.text_field :meaning %> 
    </div><br><br> 
<% end %> 

<%= f.submit "Save and/or Return", :name => "update", class: "btn btn-default" %> 

답변

0

:
다음은 내 편집 양식입니다.

새로운 필드 용 섹션을 원한다면 실제로 새 필드를 만들어야합니다.

예 :

<%= f.fields_for :translations, [@plate.translations.build] do |fff| %> 
    <div> 
    <%= fff.text_field :meaning %> 
    </div><br><br> 
<% end %>