2013-03-04 43 views
-1

好吧,这些是我第一次尝试编写代码而没有任何教程或示例,所以可能我正在做一些非常愚蠢的事情。 我有一个评分模式,哪个家长派对,哪个家长投票。我没有生成支持投票的脚手架,只是模型,因为我想通常我不需要在这里拥有所有标准控制器或视图。我尝试添加简单的投票系统(我知道的宝石,但实践想着想自己做)为什么投票是无类?

所以我党型号:

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' 为什么?

+0

首先,您不需要将':rating_id'传递给'@ rating.parties.build'。所以它应该是'@party = @ rating.parties.build'。接下来的事情,它应该是'@vote = @ party.build_vote'。尝试这些更改,让我们知道你会得到什么。 – 2013-03-05 06:00:29

+0

尝试了这一切,仍然无。 – 2013-03-06 18:38:36

回答

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]) 
+0

嗯,可能这是我将得到的下一个错误,但现在我意识到我甚至没有创建任何投票,尽管尝试分配它们 – 2013-03-04 22:57:34

2

这句法无效:

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

使用这个代替:

@vote = @party.build_vote 

没有必要指定party_idbuild_vote方法为你做这个。

查看关于Rails Guides的解释。