我知道我之前有过这个工作,但由于某种原因,我的一个创建操作中的current_user方法调用仍然返回nil。当在其他控制器等中使用时,它可以正常工作,例如侧面板,以显示我的用户名。
class CombatInstancesController < ApplicationController
def create
# when creating a new instance, check if the current user has one and destroy it
CombatInstance.find(current_user.combat_instance.id).destroy if current_user.combat_instance
# Now create the new one
render :json => current_user.create_combat_instance
end
def update
@combat_instance = current_user.combat_instance
@combat_instance.trigger_actions(params[:actions])
@combat_instance.perform_ai_actions
@combat_instance.save # should we instead call this in an after hook?
render :json => @combat_instance
end
end
行CombatInstance.find(current_user.combat_instance.id).destroy if current_user.combat_instance
是current_user返回nil的地方。工作流程是:我转到主页,我登录就好了。我可以在顶部看到我的用户名,这是使用视图中的current_user帮助程序生成的。但是,当我提交一个在此处点击创建操作的表单时,它将返回nil。
答案 0 :(得分:3)
您是否正在使用Rails 3 w / Ajax调用?
确保你有
<%= csrf_meta_tag %>
在标题中。