为什么我的 ajax post.request 调用我的方法,但没有做任何事情

Why does my ajax post.request call my method, but doesn't do anything?

本文关键字:我的 任何事 方法 post ajax request 调用 为什么      更新时间:2023-09-26

我有这个Ajax请求,但无论如何,我仍然得到$.ajax({type: POST, url: add_timespan, data: {to_find_id: 192148455}, success:function(){alert(1);}});

问题是:

Started POST "/subgroups/519716477/add_timespan" for 127.0.0.1 at 2014-04-03 14:54:44 +0200
Processing by SubgroupsController#add_timespan as */*
  Parameters: {"to_find_id"=>"192148455", "subgroup_id"=>"519716477"}
  ←[1m←[36mUser Load (0.0ms)←[0m  ←[1mSELECT "users".* FROM "users" WHERE "users"."id" =? LIMIT 1←[0m  [["id", 702273327]]
Redirected to http://localhost:3000/
Completed 302 Found in 0ms (ActiveRecord: 0.0ms)

如您所见,它启动了我的方法,甚至传递了参数,但它没有完成它,因为它没有为我的子组添加时间跨度。

我找不到为什么。你可以帮我吗?

编辑:正如Paul Richter提到的,这是我的控制器方法:

def add_timespan
    RTimespan.create(timespan_id: params[:to_find_id].to_s, subgroup_id: @subgroup.id.to_s)
end

正如 arieljoud 提到的:是的,我有一个之前过滤器:

before_action :set_subgroup, only: [:show, :edit, :update, :destroy,  :remove_admin, :search_user, :remove_user, :process_add_user, :process_add_admin]
before_action :login_required

我已经编辑了我的before_action也有:add_timespan。

before_action :set_subgroup, only: [:show, :edit, :update, :destroy,  :remove_admin, :search_user, :remove_user, :process_add_user, :process_add_admin, :add_holiday]
before_action :login_required

现在我没有重定向了,但现在它说:

Started POST "/subgroups/519716477/add_timespan" for 127.0.0.1 at 2014-04-03 15:28:24 +0200
Processing by SubgroupsController#add_timespan as */*
  Parameters: {"to_find_id"=>"310026848", "subgroup_id"=>"519716477"}
  ←[1m←[35mUser Load (0.0ms)←[0m  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", 702273327]]
Completed 404 Not Found in 0ms
ActiveRecord::RecordNotFound (Couldn't find Subgroup without an ID):
  app/controllers/subgroups_controller.rb:161:in `set_subgroup'
  app/controllers/application_controller.rb:11:in `reset_timezone_to_utc'

set_subgroup方法:

def set_subgroup
  @subgroup = Subgroup.find(params[:id])
end

编辑:我把before_action :login_required注释掉了。你知道我现在得到哪个错误吗?和以前一样?我开始绝望了。

@kirti-索拉特:我试过你的想法,但仍然行不通。当我使用你的想法时,我回到了第 4 行的第一个日志。您还有其他建议吗?

欲了解更多信息:链接到我的 RAILS-论坛帖子

更新

set_subgroup以解决错误ActiveRecord::RecordNotFound (Couldn't find Subgroup without an ID)

def set_subgroup
  if params[:id].present?
    @subgroup = Subgroup.find(params[:id]) 
  elsif params[:subgroup_id].present?
    @subgroup = Subgroup.find(params[:subgroup_id]) 
  end 
end

根据您的参数哈希,您将获得SubgroupsController#add_timespan请求的subgroup_id

Parameters: {"to_find_id"=>"310026848", "subgroup_id"=>"519716477"}

在这种情况下,您需要传递params[:subgroup_id]才能找到匹配Subgroup记录。