面白いと思うパンチラインに投票できるウェブサイト(GiggleTrigger.com) 。これはajaxコールを介して行われるように設定されていましたが、Rails 3.1にアップグレードした後、これを壊したようです。私はjQueryにjavascriptを更新しようとしましたが、まだ動作していません。Rails 3.1にアップグレードされ、jQueryに変更されました。現在、私のajaxはフィールドを更新していないようです。
ここで(ビュー/投票/ create.js.rjsに配置された)古いjavascriptのコードされています
page.replace_html "vote_total_#{@punchline.id}", "#{@punchline.votes.size}"
ここでビュー/投票/ create.jsに配置しようとしました更新されたコードは(あります.erb):
:ここ$("#vote_total_#{@punchline.id}").html("<%= escape_javascript render @punchline.votes.size %>");
は、ビュー/ punchlines/_punchline.html.erbに配置されたHTML()であります私はこのエラーを取得しています*
class VotesController < ApplicationController
def create
@punchline = Punchline.find(params[:punchline_id])
@vote = @punchline.votes.build params[:vote]
@vote.user = current_user
respond_to do |format|
if @vote.save
format.js
format.html { redirect_to @punchline }
else
format.html { redirect_to root }
end
end
end
end
:ここでは3210
<span id="vote_total_<%= punchline.id %>" class="punchline_votes"> <%= punchline.votes.size %> </span> <span id="vote_button"> <%= button_to 'giggle', punchline_votes_path(:punchline_id => punchline), :remote => true %> </span>
は、コントローラのコード(コントローラ/ votesController.rbに配置された)である
ActionView::Template::Error (undefined method `model_name' for Fixnum:Class):
1: $("#vote_total_#{@punchline.id}").html("<%= escape_javascript render @punchline.votes.size %>");
app/views/votes/create.js.erb:1:in `_app_views_votes_create_js_erb__1782616409977082835_2168430380'
app/controllers/votes_controller.rb:7:in `create
のでこれは整数が渡される問題のようですが、私はこのように.to_sメソッドを追加します:
$("#vote_total_#{@punchline.id}").html("<%= escape_javascript render @punchline.votes.size.to_s %>");
しかし、私はこのエラーを取得する:
$("#vote_total_#{@punchline.id}").html("<%= escape_javascript render :partial => 'punchline', :object => @punchline.votes.size %>");
しかし、その後、私はこのエラーを取得する:私はそうのような部分を追加しよう ActionView::Template::Error (Missing partial votes/1, application/1 with {:handlers=>[:erb, :builder, :coffee], :formats=>[:js, :html], :locale=>[:en, :en]}. Searched in:
* "/Users/Daniel/Sites/giggle/app/views"
* "/Users/Daniel/.rvm/gems/[email protected]/gems/devise-1.5.3/app/views"
):
1: $("#vote_total_#{@punchline.id}").html("<%= escape_javascript render @punchline.votes.size.to_s %>");
app/views/votes/create.js.erb:1:in `_app_views_votes_create_js_erb__1782616409977082835_2187483480'
app/controllers/votes_controller.rb:7:in `create'
ActionView::Template::Error (Missing partial votes/punchline, application/punchline with {:handlers=>[:erb, :builder, :coffee], :formats=>[:js, :html], :locale=>[:en, :en]}. Searched in:
* "/Users/Daniel/Sites/giggle/app/views"
* "/Users/Daniel/.rvm/gems/[email protected]/gems/devise-1.5.3/app/views"
):
1: $("#vote_total_#{@punchline.id}").html("<%= escape_javascript render :partial => 'punchline', :object => @punchline.votes.size.to_s %>");
app/views/votes/create.js.erb:1:in `_app_views_votes_create_js_erb__1782616409977082835_2185760740'
app/controllers/votes_controller.rb:7:in `create'
私がクズボタンをクリックすると、モデルオブジェクトに投票が追加されますが、ページを更新しない限り、ビューは更新されません。明らかに、私はリフレッシュせずにajaxを通してそれが起こることを望んでいます。ありがとうございました!
VALUESをokです。 ?配列内の値で補間されます(ログラインの残りの部分を参照してください) – BlueFish
"puts params.inspect"を試して、ポストリクエストで値を取得しているかどうかを確認してください... – BlueFish
"動作しない" IDのように送信され、アクションは発砲しています。 –