Ruby on rails AJAX按钮不工作?
我目前正在尝试使用Rails应用程序获得AJAX最喜欢的按钮。我用这个来处理这件事。出于某种原因,在控制台中,我得到的错误是:Ruby on rails AJAX按钮不工作?,ruby-on-rails,ruby,ajax,Ruby On Rails,Ruby,Ajax,我目前正在尝试使用Rails应用程序获得AJAX最喜欢的按钮。我用这个来处理这件事。出于某种原因,在控制台中,我得到的错误是: Completed 500 Internal Server Error in 132ms RuntimeError - Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id: 这里是Post视图,其中呈现Post
Completed 500 Internal Server Error in 132ms
RuntimeError - Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id:
这里是Post视图,其中呈现Post_项的部分
<%= render "shared/fave-form", post_item: post_item %>
这是投票的路线
resources :posts do
member do
post :create
post :vote_up
post :vote_against
end
end
我认为您的
post_item
变量在代码中的某个地方是nil
,但不幸的是,我没有足够的信息来发现问题所在……您还需要什么其他信息?哪一行引发了此错误;相应控制器的动作;此外,@变量
始终在控制器的操作、视图和部分之间共享;-)和routes.rb,因为还不清楚投票反对他们的行动,投票支持他们的行动。在编辑中添加了他们。
$(".post-fave-button").html("<%= escape_javascript(render :partial=>"shared/fave-form", locals: {post_item: @post_item}).html_safe %>);
def vote_up
@post = Post.find(params[:id])
if current_user
current_user.vote_for(@post)
respond_to do |format|
format.html { redirect_to @post }
format.js
render "shared/toggle"
end
else
flash[:error] = "You Must be logged in to like a post"
end
end
resources :posts do
member do
post :create
post :vote_up
post :vote_against
end
end