Я новичок в рельсах, так что извините, если иногда я не имею никакого смысла. Вот что я пытаюсь сделать. Я пытаюсь создать систему голосования. Итак, рядом с сообщением в блоге есть ссылка, в которой говорится «голос» (вероятно, это будет сказано позже). До сих пор я работаю: когда нажата кнопка голосования, значение «1» доставляется в таблицу голосования, а затем записи конкретных записей за столом отображаются под голосованием через AJAX (я скопировал функциональность комментариев). Вместо того, чтобы показывать все число «1» ниже, я хочу, чтобы он отображал обновленный счетчик.Показан счетчик записей - Ruby on Rails - Ajax
Моя таблица голосования имеет столбцы «vote» и «post_id», которые успешно вводятся. Я думал, что могу просто изменить свой частичный шаблон, чтобы сделать это. Вот код:
votes_controller:
class VotesController < ApplicationController
def create
@post = Post.find(params[:post_id])
@vote = @post.votes.create!(params[:vote])
respond_to do |format|
format.html { redirect_to @post}
format.js
end
end
end
def count
@post = Post.find(params[:post_id])
@vote = calculate :count
respond_to do |format|
format.html { redirect_to @post}
format.js
end
end
end
Вот страница, где показывает, /posts/show.html.erb:
<div id="backto"<%= link_to 'Back to all BattleCries', posts_path %></div>
<%= render :partial => @post %><br/>
<p5>Add a Comment</p5>
<div id="belt">
<div id="belttext">
<% remote_form_for [@post, Comment.new] do |f| %>
<p>
<%= f.text_area (:body, :class => "commentarea") %>
</p>
<%= f.submit "Add Comment"%>
<% end %>
</div>
<div id="beltbottom">
</div>
</div><br/>
<br/><p5>Comment Stream </p5>
<div id="comments">
<%= render :partial => @post.comments %>
</div>
<p>
<% remote_form_for [@post, Vote.new] do |f| %>
<p>
<%= f.hidden_field :vote, :value => '1' %>
</p>
<%= f.submit "Vote" %>
<% end %>
<div id="vote">
<div id="votes">
<%= render :partial => @post.votes %>
</div>
</div>
</p>
Здесь: частично,/голосов/_vote.html.erb: (вот где я думал, что мне просто нужно будет изменить его на vote.count, или post.count или что-то, но не может заставить его работать).
<% div_for vote do %>
<%= h(vote.vote) %>
<% end %>
Вот /votes/create.js.rjs файл:
page.insert_html :bottom, :votes, :partial => @vote
page[@vote].visual_effect :highlight
Я надеюсь, что все это имеет смысл.
он делает, но повторяет его. 3 – bgadoci