соответствующий вопрос: Vote_fu и запросы Ajax
Кажется, что-то не так с моим запросом Ajax.То, что я пытаюсь сделать, это по событию щелкнуть голосование, отправить голосование, а затем обновить страницу без обновления страницы.
voice_controller.rb:
def create
@album = Album.find(params[:album_id])
respond_to do |format|
if current_user.vote(@album, params[:vote])
format.js { render :action => "create", :vote => @vote }
format.html { redirect_to([@album.user, @album]) }
#format.xml { render :xml => @album, :status => :created, :location => @album }
else
format.js { render :action => "error" }
format.html { render :action => "new" }
format.xml { render :xml => @vote.errors, :status => :unprocessable_entity }
end
end
end
ссылка |для просмотра альбома:
<%= link_to_remote "Vote Up",
:url => user_album_votes_path(album.user, album,
:vote => :true, :format => :js),
:method => :post %>
application.js
jQuery.ajaxSetup({
'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")}
})
jQuery(document).ready(function() {
$("#votes_.album").bind('click');
})
create.js
page.replace_html "#votes_{@album.id}",
:partial => "album_vote",
:locals => {:album => @album}
Это следующее сообщение об ошибке, которое я получаю:
missing ; before statement
[Break on this error] page.replace_html "#votes_#{@album.id}", ...bum_vote", :locals => {:album => @album}
Я не уверен, что здесь происходит не так. Я следовал многим примерам из документа voice_fu, у которого все еще есть проблемы.
http://github.com/peteonrails/vote_fu/tree#readme
одна поправкасделано на create.js
теперь есть еще одна ошибка:
Нет, ошибка перенесена на voice_controller
NoMethodError (You have a nil object when you didn't expect it!
<br />
The error occurred while evaluating nil.vote):
app/controllers/votes_controller.rb:53:in `create'
app/controllers/votes_controller.rb:52:in `create'
<br />
Rendered rescues/_trace (128.4ms)
Rendered rescues/_request_and_response (0.4ms)
Rendering rescues/layout (internal_server_error)
Эти строки находятся в действии создания, котороевыглядит отлично!?
Как мне заставить это работать?
С уважением
Дан