Ajaxを使用しているときにレールの一部を更新しようとしていますが、問題が発生しています。基本的に、私はカルマ属性を持つ投稿を持っています。ユーザーは投票して投票し、投票してカルマを投稿から削除することができます。ユーザーがAjaxを使用して投稿値を非同期的に更新できるようにしたいのですが、NilClassエラーが発生しました。エラーimgetingは、nil:NilClass(私の_karma_value.erbファイル内)の未定義のメソッド `karma'であり、私のファイルは次のようになります。私は完全に立ち往生しています!
posts_controller.rb
def add_karma
# Save the page that the request came from
session[:initial_page] ||= request.referer
@post = Post.find(params[:id])
@post.karma = @post.karma + 1
@post.update_attributes(params[:post])
respond_to do |format|
format.html { redirect_to session[:initial_page] } #redirect back to requesting page
format.json { head :no_content }
format.js {}
end
end
add_karma.js.erb
$('#add_karma').html(
"<%= escape_javascript(render('_karma_value', post: @post)) %>");
index.html.erb
...
<b>Karma:</b>
<%= render(:partial => 'karma_value', :locals => {:post => @post}) %> <br>
...
_karma_value.erb
<% if !(post.karma.nil?) %>
<%= post.karma %>
<% end %>