(对不起,长篇大论)好的家伙,所以我遇到了一些我正在尝试的问题,我一直试图修复它已经很久了,现在是时候寻求帮助了。
好的,所以我有这些“研磨者”,我希望用户为每个人投票,
我做了两个脚手架:
grinder grinder:string posted_timestamp:datetime poster_ip:string votes_up:integer
votes_down:integer
投票grinder_id:integer choice:string voter_ip:string
所以我创建了这个 研磨机指数
<% @grinders.each do |grinder| %>
<div id="main">
<div style="float:left; height:80px; width:50px">
<div class='up'>
<% form_for(@vote) do |u| %>
<%= u.hidden_field :grinder_id, :value => grinder.id %>
<%= u.hidden_field :choice, :value => "down" %>
<%= u.submit 'Create' %>
<% end %>
</div>
<center><%=h grinder.votes_up - grinder.votes_down %></center>
<div class='down'>
<% form_for(@vote) do |d| %>
<%= d.hidden_field :grinder_id, :value => grinder.id %>
<%= d.hidden_field :choice, :value => "down" %>
<%= d.submit 'Create' %>
<% end %>
</div>
</div>
<div class='box' >"<strong>It grinds our gears </strong><%=h grinder.grinder %>"</div>
</div>
</div>
<% end %>
Grinders索引页面如下所示http://grab.by/6Eik
我还将@vote = Vote.new
添加到grinders controller
..
在votes controller
我稍微修改了创建方法。
def create
@vote = Vote.new(params[:vote])
@grinder.voter_ip = request.remote_ip
respond_to do |format|
if @vote.save
format.html { redirect_to(@vote, :notice => 'Vote was successfully created.') }
format.xml { render :xml => @vote, :status => :created, :location => @vote }
else
format.html { render :action => "new" }
format.xml { render :xml => @vote.errors, :status => :unprocessable_entity }
end
end
end
但是无论何时我尝试投票,我都会收到以下错误。 http://grab.by/6EiQ
答案 0 :(得分:1)
修正了它们,结果证明我上次移植时没有工作......所以我必须修复它,并进行迁移。
答案 1 :(得分:0)
模型中指定的投票和磨床之间的关系如何?
它正在传递一个不属于投票模型的voter_choice。 选择是第二部分
在您的观点中更改:
from <%= d.hidden_field :voter_choice, :value => "down" %>
to <%= d.hidden_field :choice, :value => "down" %>