Jquery rails ActionView::缺少模板ajax函数

Jquery rails ActionView::缺少模板ajax函数,jquery,ruby-on-rails,ajax,ruby-on-rails-4,Jquery,Ruby On Rails,Ajax,Ruby On Rails 4,我使用ajax请求调用Rails控制器函数。它可以工作,但我返回了一个错误: ActionView::MissingTemplate 控制器功能是: # Aktiviert einen Kurs. Diese Action wird von einem AJAX-Aufruf aus aufgerufen def activate @course = Course.find params[:id] return false unless check_authorizat

我使用ajax请求调用Rails控制器函数。它可以工作,但我返回了一个错误:

ActionView::MissingTemplate
控制器功能是:

# Aktiviert einen Kurs. Diese Action wird von einem AJAX-Aufruf aus    aufgerufen
 def activate
    @course = Course.find params[:id]
    return false unless check_authorization @course
   @course.active = params[:active]
   @course.save

   redirect_to :back
end
ajax调用如下所示:

$.ajax({
       url: '<%= url_for(:controller => "courses", :action => "activate_lesson") %>',
       data: {"id": <%= lesson.id%>, "active": 0}
                })
                        .done(function () {
                            saved();
                        })
                        .fail(function () {
                            notsaved();
                        })
$.ajax({
url:“‘课程’,:操作=>“激活课程”)%>”,
数据:{“id”:“活动”:0}
})
.done(函数(){
保存();
})
.fail(函数(){
不保存();
})

如何解决错误

当您在控制器内部使用操作时,如果您没有说明它应该呈现什么样的特定模板,那么它将进行搜索

app/views/controller\u name\u不带word\u controller/action\u name.html.*

在您的情况下,它正在搜索
app/views/controller\u name/activate.html.*
以呈现它,但您没有该文件

解决方案是返回
json
响应,因为您使用的是
ajax
,但您可以返回
html

你可以写:

 def activate
   @course = Course.find params[:id]
   return false unless check_authorization @course
   @course.active = params[:active]
   @course.save
   render json: @course # or whatever you want to return
end

在控制器内部使用操作时,若并没有说明它应该呈现什么样的特定模板,则会搜索该模板

app/views/controller\u name\u不带word\u controller/action\u name.html.*

在您的情况下,它正在搜索
app/views/controller\u name/activate.html.*
以呈现它,但您没有该文件

解决方案是返回
json
响应,因为您使用的是
ajax
,但您可以返回
html

你可以写:

 def activate
   @course = Course.find params[:id]
   return false unless check_authorization @course
   @course.active = params[:active]
   @course.save
   render json: @course # or whatever you want to return
end

在控制器内部使用操作时,若并没有说明它应该呈现什么样的特定模板,则会搜索该模板

app/views/controller\u name\u不带word\u controller/action\u name.html.*

在您的情况下,它正在搜索
app/views/controller\u name/activate.html.*
以呈现它,但您没有该文件

解决方案是返回
json
响应,因为您使用的是
ajax
,但您可以返回
html

你可以写:

 def activate
   @course = Course.find params[:id]
   return false unless check_authorization @course
   @course.active = params[:active]
   @course.save
   render json: @course # or whatever you want to return
end

在控制器内部使用操作时,若并没有说明它应该呈现什么样的特定模板,则会搜索该模板

app/views/controller\u name\u不带word\u controller/action\u name.html.*

在您的情况下,它正在搜索
app/views/controller\u name/activate.html.*
以呈现它,但您没有该文件

解决方案是返回
json
响应,因为您使用的是
ajax
,但您可以返回
html

你可以写:

 def activate
   @course = Course.find params[:id]
   return false unless check_authorization @course
   @course.active = params[:active]
   @course.save
   render json: @course # or whatever you want to return
end

您需要从控制器中呈现
json

before_filter :authorized?, :only => :activate

def activate
  @course.active = params[:active]
  if @course.save
    render :json => {:status => :ok}
  else
    render :json => {:errors => @course.errors}
  end
end

def authorized?
  @course = Course.find params[:id]
  render :json => {:status => 401, :error => :unauthorized} unless check_authorization(@course)
end

您需要从控制器中呈现
json

before_filter :authorized?, :only => :activate

def activate
  @course.active = params[:active]
  if @course.save
    render :json => {:status => :ok}
  else
    render :json => {:errors => @course.errors}
  end
end

def authorized?
  @course = Course.find params[:id]
  render :json => {:status => 401, :error => :unauthorized} unless check_authorization(@course)
end

您需要从控制器中呈现
json

before_filter :authorized?, :only => :activate

def activate
  @course.active = params[:active]
  if @course.save
    render :json => {:status => :ok}
  else
    render :json => {:errors => @course.errors}
  end
end

def authorized?
  @course = Course.find params[:id]
  render :json => {:status => 401, :error => :unauthorized} unless check_authorization(@course)
end

您需要从控制器中呈现
json

before_filter :authorized?, :only => :activate

def activate
  @course.active = params[:active]
  if @course.save
    render :json => {:status => :ok}
  else
    render :json => {:errors => @course.errors}
  end
end

def authorized?
  @course = Course.find params[:id]
  render :json => {:status => 401, :error => :unauthorized} unless check_authorization(@course)
end


为什么在控制器中使用
redirect\u to:back
。。。但是如果有或没有更改,
redirect_to:back
将无助于
呈现json:{data:12}
将起作用。。这就是语法。。返回对Ajax调用方的响应..为什么要在controller中使用
重定向\u to:back
?我想这可能会有帮助。。。但是如果有或没有更改,
redirect_to:back
将无助于
呈现json:{data:12}
将起作用。。这就是语法。。返回对Ajax调用方的响应..为什么要在controller中使用
重定向\u to:back
?我想这可能会有帮助。。。但是如果有或没有更改,
redirect_to:back
将无助于
呈现json:{data:12}
将起作用。。这就是语法。。返回对Ajax调用方的响应..为什么要在controller中使用
重定向\u to:back
?我想这可能会有帮助。。。但是如果有或没有更改,
redirect_to:back
将无助于
呈现json:{data:12}
将起作用。。这就是语法。。返回对Ajax调用方的响应…谢谢,但我也收到了相同的错误。。。没有什么改变,但是我也犯了同样的错误。。。没有什么改变,但是我也犯了同样的错误。。。没有什么改变,但是我也犯了同样的错误。。。没什么变化我也尝试过这个解决方案,但我也犯了同样的错误啊!您正在调用
激活课程
操作。它与
激活
操作不同吗?谢谢这是我需要的提示^^我必须更新激活课程操作!我也尝试过这个解决方案,但我也犯了同样的错误啊!您正在调用
激活课程
操作。它与
激活
操作不同吗?谢谢这是我需要的提示^^我必须更新激活课程操作!我也尝试过这个解决方案,但我也犯了同样的错误啊!您正在调用
激活课程
操作。它与
激活
操作不同吗?谢谢这是我需要的提示^^我必须更新激活课程操作!我也尝试过这个解决方案,但我也犯了同样的错误啊!您正在调用
激活课程
操作。它与
激活
操作不同吗?谢谢这是我需要的提示^^我必须更新激活课程操作!