(простите за длинный пост) Хорошо, ребята, у меня возникли проблемы с чем-то, что я пытаюсь, я уже давно пытаюсь это исправить, и теперь пришло время обратиться за помощью.
Хорошо, у меня есть эти "дробилки", и я хочу, чтобы пользователь голосовал за каждого,
Я сделал два эшафота:
точильщик grinder:string posted_timestamp:datetime poster_ip:string votes_up: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