【问题标题】:AJAX Jquery in railsRails 中的 AJAX Jquery
【发布时间】:2014-02-16 05:18:11
【问题描述】:

我正在尝试将数据从视图传递到控制器,但数据没有传递 那么我的应用出了什么问题?

在视图中:

var url = '搜索/索引';

$( "#h" ).click(function() {

   $.ajax({
       type: "GET",
       url: url,
       data: {xx: 'q'}
   });

});

控制器:

类 SearchsController

定义索引

@x=User.new(:name=> 参数[:xx])

@x.save

结束

结束

【问题讨论】:

  • 在 url 中指定路径 ...

标签: javascript jquery ruby-on-rails ajax


【解决方案1】:

替换这个

var url = '搜索/索引';

有了这个

var url = '';

【讨论】:

    【解决方案2】:

    您应该首先遵循 Rails RESTful 路由的约定,并使用index 端点作为列出所有“搜索”的方式。我不明白你为什么在SearchsController#index 中做UsersController#create 的东西。

    无论如何,一旦你理顺了这一点,假设你有一个名为 SearchsController#custom 的控制器端点(你不应该这么称呼它,但我想不出更好的)映射到 searchs_custom_path

    然后在你的模板中做这样的事情:

    <%= hidden_field_tag "searchsCustomPath", searchs_custom_path %>
    

    然后在你的 JavaScript 中这样做:

    $( "#h" ).click(function() {    
       $.ajax({
           type: "GET",
           url: $("#searchsCustomPath").val(),
           data: {xx: 'q'}
       });
    });
    

    这样您就不会对 URL 进行硬编码和违反 DRY,同时仍使正确的 Rails 生成的 URL 可用于 JQuery。

    【讨论】:

    • 他还可以将 URL 作为数据属性添加到 #h,并使用类似 $(this).data('search-url');(取决于 jQuery 版本)来访问它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    • 2012-11-01
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    • 2014-07-28
    相关资源
    最近更新 更多