我正在尝试在使用 Ajax 并遇到一些问题时更新 Rails 部分。基本上我有一个带有业力属性的帖子。用户可以投票赞成和反对,以从帖子中删除和删除 Karma。我想允许用户使用 Ajax 异步更新 post 值,并且我遇到了 NilClass 错误,我希望你能帮助我。我得到的错误是 nil:NilClass 的未定义方法“业力”(在我的 _karma_value.erb 文件中),我的文件如下所示。我完全卡住了!
post_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 %>