rails ajax请求返回未找到但控制器功能存在

时间:2016-04-27 13:23:52

标签: ruby-on-rails ruby ajax ruby-on-rails-4

我在Ajax函数方面遇到了一些问题。我从服务器收到错误500

Ajax函数如下所示:

  $.ajax({
    type: "POST",
    url: "<%= url_for(:controller => "movies", :action => "test") %>",
    data: {inputtag: tag }
  })

在我的电影控制器中,我有这个功能

 # Fügt dem Video einen Tag hinzu
 def test
   @tag = Tag.new
   if request.post?
      @tag.update_attributes(params[:inputtag])
      if @tag.save
        redirect_to :back
      else
        redirect_to :back
      end
    end
  end

所以,我不知道为什么会出现这个错误:

http://lvh.me/movies/test 500 (Internal Server Error)

2 个答案:

答案 0 :(得分:0)

您缺少routes.rb文件中的条目

resources :movies do
  collection do
    get 'test'
  end
end

答案 1 :(得分:0)

500状态与路由无关。检查你的控制器动作,特别是这个。

  

@ tag.update_attributes(PARAMS [:inputtag])

您正在尝试更新不存在的记录,并且您没有正确使用Rails的强参数。所以试试吧。

  def test
    @tag = Tag.create tag_params
    redirect_to :back
  end

  private

  # If your tag model looks like: Tag(id: integer, inputtag: string)
  def tag_params
    params.require(:tag).permit(:inputtag)
  end