Utilisation des rails fonte http://railscasts.com/episodes/324-passing-data-to-javascript?autoplay=truevariables passe à javascript rails
passer une variable de mon contrôleur javascript.
J'ai un bouton, quand je clique dessus, je veux qu'il montre le nombre de votes.
Im utilisant gon.
Lorsque je tente de l'exécuter cependant, mon alerte dit que la variable est pas définie même si je l'ai mis dans le contrôleur
_source.html.erb
<div class="panel-body">
<%= include_gon(:init => true) %>
<%=source.source %>
<% @count = pluralize(source.upvotes.count,"upvote") %>
<div id="count"><%= @count %></div>
<%= button_to '+1', upvote_source_path(source), method: :post,remote: true %>
<p><%= link_to "delete", [source.fact, source], method: :delete, data:{confirm: "are you sure?"} %></p>
</div>
application.html.erb
<!DOCTYPE html>
<html>
<head>
<title>Sourcemonkey</title>
<%= include_gon(:init => true) %>
<%= csrf_meta_tags %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>
<body>
<%= yield %>
</body>
</html>
sources_controller.rb -> upvotes l'action
def upvote
@source = Source.find(params[:id])
@source.upvotes.create
gon.count = @source.upvotes.count
respond_to do |format|
format.js {render :js =>"upDateCount()"}
format.html { redirect_to :none}
end
end
upvote.js.erb
function upDateCount(){
alert(gon.count)
}
routes.rb
Rails.application.routes.draw do
# mount Ckeditor::Engine => '/ckeditor'
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
root to: "facts#index"
resources :facts do
resources :sources
end
resources :sources do
member do
post 'upvote'
end
end
resources :upvote
end
idées Apprécions, grâce
Cela fonctionne, merci !!!! Im curieux de savoir pourquoi ce cas est spécial et gon n'est pas conseillé si vous le savez? – mogoli
Je n'utilise pas 'format.js', j'ai tendance à répondre avec des données, pas des scripts, c'est pourquoi je ne le sais pas à coup sûr. Je suppose que les scripts rendus par les contrôleurs sont évalués dans un contexte différent de celui des scripts statiques. – mrzasa
Merci pour l'explication, Im commençant par des rails, alors appréciez la perspicacité – mogoli