0

私は3つのモデルを持っています。つまり、投票者には多くの投票があり、投票オブジェクトが作成されたときと同じフォームで投票者に投票させようとしていますが、フォームのフィールドが表示されません。これが私のモデルです:

class Voter < ActiveRecord::Base
  attr_accessible :email_address, :verification_code, :verified, :votes_attributes
  has_many :votes, :class_name => "Vote"
  accepts_nested_attributes_for :votes
end

class Vote < ActiveRecord::Base
  belongs_to :entry
  belongs_to :voter
  attr_accessible :entry, :voter, :voter_id
end

そして私の形で私は持っています:

<%= form_for(@voter) do |f| %>
<% if @voter.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@voter.errors.count, "error") %> prohibited this voter from being saved:</h2>

<ul>
<% @voter.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>

  <div class="field">
    <%= f.label :email_address %><br />
<%= f.text_field :email_address %>
  </div>
  <div class="field">
    <%= f.label :verification_code %><br />
    <%= f.text_field :verification_code %>
  </div>
  <div class="field">
    <%= f.label :verified %><br />
    <%= f.check_box :verified %>
  </div>

<div class="field">
      <% f.fields_for :votes do |builder| %>  
        <fieldset>
        <%= builder.label :votes, "Entry" %>
        <%= collection_select(:entry, :entry_id, Entry.all, :id, :email_address, :prompt => 'Please select an Entry') %>
      <% end %>
    </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

しかし、投票フィールドは表示されていません。そして、その理由がわかりません。

4

1 に答える 1

0

Rails 3 では、以下を使用する必要があります。

 <%= f.fields_for :votes do |builder| %>  

これで問題は解決します。

于 2013-02-25T15:02:54.457 に答える