0

わかりました。チュートリアルや例を使用せずにコーディングするのはこれが初めてなので、ひどくばかげたことをしているのかもしれません。どちらの親がパーティーに、どの親が投票するかという評価モードがあります。私は投票用の足場を生成しませんでした。一般的に、すべての標準コントローラーを持っている必要はなく、ここで表示する必要もないと思います。簡単な投票システムを追加しようとしています(宝石については知っていますが、練習のために自分でやりたいです)

だから私のパーティーモデル:

class Party < ActiveRecord::Base
  belongs_to :rating
  has_one :vote
  end

end

投票モデル:

 class Vote < ActiveRecord::Base
  attr_accessible :negative, :positive, :party_id
  belongs_to :party
  #def self.build(party_id)
    #return Vote.new(:party_id=>party_id)
  #end

end

Parties_controller:

def create
    @rating = current_rating
    @party = @rating.parties.build(:rating_id => @rating_id)
    #@vote = Vote.add_voting(@party.id)
    @vote = @party.Vote.build(:party_id=>@party.id)

コメントされた部分は、かなり同じことをしようとする試みの1つです。
そして、ビューで私がクラスを求める場合:

<%  @rating.parties.each do |item| %>
      <p><%= item.name %></p>
       <p><%= item.vote.class %></p>
    <% end %>

'nilClass'と表示されますなぜですか?

4

2 に答える 2

2

この構文は無効です:

@party.Vote.build(:party_id => @party.id)

代わりにこれを使用してください:

@vote = @party.build_vote

を割り当てる必要はありませんparty_idbuild_voteメソッドがこれを行います。

Rails Guidesの説明を参照してください。

于 2013-03-05T08:35:21.593 に答える
0
@positive_votes = Vote.find_by_positive(params[:user_uid, :party_id])

find_by_positiveは、データベース内の「positive」列を検索することを想定していますが、user_idとparty_idを渡しています。これを試して:

@positive_votes = Vote.find_by_user_uid_and_party_id(params[:user_uid], params[:party_id])
于 2013-03-04T22:33:23.497 に答える