javascript - 无法使用 Rails 在 Ajax 请求中通过 url 传递参数

标签 javascript jquery ruby-on-rails ajax

我正在尝试通过由确认对话框触发的 Ajax 请求中的 url 传递参数。我想在请求成功后在 Rails Controller 中获取该参数的值,但我无法做到这一点。

到目前为止我已经尝试过以下代码:

这是我的 Ajax 请求,我在 URL 中添加了参数,并在数据中添加了其他参数

function continueSave() {
  var name = $('#leader_name').val();
  var persisted_time = $('#leader_time').val();

  $.ajax({
    type: "POST",
    url: "/leaderboards/1/?test=1",
    data: { leader: { name: name, time: time } },
    success: success

  });
}

这里是对话相关的JS

function nameAlert() {
  return confirm("Name already exists. Would you like to continue?");
};

(function() {
  if (nameAlert()) {
    continueSave();
  }
else {
    //something else here
   }
})();

虽然请求成功到达 Controller ,但 Controller 中的 params[:test] 为 nil。

我也尝试过在数据中传递测试参数,但它也不起作用。

希望得到一些帮助。

相关 Controller 操作 (leaders_controller.rb)

  def create
    @leader = Leader.new(leader_params)
    @leader.leaderboard_id = @leaderboard.id
    @name_repeated = !@leaderboard.leaders.find_by(name: @leader.name).nil?
    @check = params[:test]

     if params[:test].nil? && @name_repeated == true
       render :template => 'leaders/repeated_name.js.erb'
     else
      @leader.save
      @rank = @leader.rank_in(@leaderboard)

      respond_to do |format|
        if @leader.save
          format.html { redirect_to root_path }
          format.js { }
        else
        end
      end
    end
  end

注意: 1.- 'leaders/repeated_name.js.erb' 包含 Ajax 请求的代码 2.- 在 route ,Leader 资源嵌套在 Leaderboard 资源中

最佳答案

对不起大家,我发现了错误。这是一个愚蠢的。 我有浅层嵌套路由,因此领导者嵌套在排行榜中,因此我使用了错误的请求路径。应该是:

  $.ajax({
    type: "POST",
    url: "/leaderboards/1/leaders?test=1",
    data: { leader: { name: name, time: time } },
    success: success

  });

我应该在之前就发现这一点,抱歉浪费了你的时间。

关于javascript - 无法使用 Rails 在 Ajax 请求中通过 url 传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41116552/

相关文章:

javascript - 使浏览器在单击后退按钮时忽略 URL 哈希

javascript - 修改uniform值时为什么要先使用get Uniform

javascript - 如何获取点击按钮的相关值?

ios - 从数据源实现提要

javascript - 分层 react View 中的状态传播

javascript - jquery从脚本中获取变量

javascript - 比较 url 字符串和菜单字符串,然后使用 jquery 添加类

javascript - 如何检查浏览器是否完全支持 javascript 方法(例如 getCompulatedStyle 伪元素)

ruby-on-rails - Minitest 控制台输出不显示颜色

ruby-on-rails - rails : how to debug localhost not responding with delayed_job/foreman