Rails 中带参数的 Jquery Ajax POST 请求 (Ruby on Rails)

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

我正在尝试在 Rails 应用程序中发出 ajax post 请求。但我在响应中收到错误。

Rails 代码:-

def search_exams(myparam1 , myparam2)
   json_data = {:aaData=> [["abc","xyz","lmnop"],["sdf","adsdf","sadfsd"],["sdf","adsdf","sadfsd"]]}.to_json
   respond_to do |format|
     format.json { render :json => json_data }
   end
end

脚本代码:-

<%= javascript_tag "window._token = '#{form_authenticity_token}'" %>


<script>
$.ajax({
        url:'/home/search_exams',
        type:'POST',
        dataType:'json',
        data:{
            myparam1: "First Param value",
            myparam2: "Second param value",
            authenticity_token: window._token
        },
        success:function(data){
            debugger;
        },
        error:function(data){
            debugger;
        }
    });
  </script>

我收到此错误:-

“HomeController#search_exams 中的 ArgumentError 参数数量错误(0 为 2)Rails.root:C:/Users/........”

最佳答案

def search_exams

从方法中删除参数。

当您将带有参数的请求传递给 Rails Controller 时,中间件堆栈会将它们放入 params 哈希中,因此您将得到:

params[:param1]
params[:params2]

--

您还需要考虑使您的 JS unobtrusive :

#app/assets/javascripts/application.js
$(document).on("action", ".element", function(){
     $.ajax({
        url:'/home/search_exams',
        type:'POST',
        dataType:'json',
        data:{
            myparam1: "First Param value",
            myparam2: "Second param value",
            authenticity_token: window._token
        },
        success:function(data){
            debugger;
        },
        error:function(data){
            debugger;
        }
    });
});

关于Rails 中带参数的 Jquery Ajax POST 请求 (Ruby on Rails),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33671134/

相关文章:

javascript - 使用 Moment.js 查找本周日期的特定日期

ruby-on-rails - has_many 依赖 : destroy is searching for a wrong column name

javascript - 由按钮触发的 load() 不起作用

javascript - 单击替换文本区域中的字符串,然后复制 (jQuery)

javascript - jQuery 在父元素上切换 onclick

javascript - 需要帮助以使用下拉选择列表来更改页面上的动态内容

ruby-on-rails - Rails 4 + Rspec + 设计 : undefined method 'env' in controller specs for sign_in a user

ruby-on-rails - 是否可以挽救ActionDispatch::Session::SessionRestoreError?

javascript - window.onbeforeunload,关闭浏览器和同步AJAX

javascript - jQuery Select2 没有在任何地方关闭(也不在他们自己的网站上)