0

私は3つのモデルを持っています。まず、多くの票を持つ有権者がいます。投票は、投票者とエントリをリンクする結合テーブルです。しかし、投票を保存しようとすると、保存されません。私のモデルは次のようになります。

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

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

class Entry < ActiveRecord::Base
  attr_accessible :caption, :email_address, :filename
end

私のフォームは次のようになります。

<%= f.fields_for :votes do |builder| %>  
    <fieldset>
    <%= builder.label :votes, "Vote" %>
    <%= collection_select(:votes, :entry_id, Entry.all, :id, :caption, :prompt => 'Please select an Entry') %>
    </fieldset>     
  <% end %>

しかし、投票はデータベースに保存されていません。応答は次のようになります。

パラメータ: {"utf8"=>"✓", "authenticity_token"=>"x5f85viIp/KHJKQF7DotaF3MhebARWcaLDKRbcZw/lM=", "voter"=>{"email_address"=>"sadasfd"}, "votes"=>{"entry_id "=>"3"}, "commit"=>"有権者の作成"}

それで、何がうまくいかないのですか?

4

1 に答える 1

0

してみてください

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

Modify vote_params in VotesController

private
def vote_params
      params.require(:vote).permit(:id, :email_address, :verification_code, :verified, votes_attributes: [:id, :name])
end
于 2013-08-22T06:39:37.677 に答える