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

派对控制器:

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)

评论部分是尝试做完全相同的事情之一。
如果考虑到我要求上课:

<%  @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_id. 该build_vote方法为您执行此操作。

请参阅Rails Guides的说明。

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

find_by_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 回答