【问题标题】:select_tag Ajax Updation with Rails3 + Jquery使用 Rails3 + Jquery 进行 select_tag Ajax 更新
【发布时间】:2011-05-16 23:13:24
【问题描述】:

我有一个显示产品类别类型的 select_tag。当用户选择产品类别并在选择标签下方的 div 中列出所有产品时,我想进行 Ajax 更新。

我想我可以使用部分和 js 模板处理产品显示部分。但我不知道如何实现

产品类别选择 向 Rails 控制器发出 ajax 请求(带参数)。 (web 中几乎所有的示例都绑定了 ajax 表单更新......)

谁能帮帮我-提前谢谢

我正在使用 Rails 3,Jquery

干杯

同样的

【问题讨论】:

    标签: jquery ruby-on-rails-3 unobtrusive-javascript


    【解决方案1】:

    如果您向我们提供有关您的数据模型的更多信息,将会很有帮助。我会根据你的问题勾勒出我认为你有什么。

    class Product < ActiveRecord::Base
      belongs_to :category
    end
    
    class Category < ActiveRecord::Base
      has_many :products
    end
    

    并假设您已设置路线:

    resources :categories do
      resources :products
    end
    

    您需要做的是连接select_tagchange 事件,以请求基于所选类别ID 的产品列表。

    $('select#categories').change(function(){
      var category_id = $(this).find('option:selected').val();
      $.getJSON(
        '/categories/' + category_id + '/products',
        function(response) {
          // render your template on the page here
        }
      );
    });
    

    我写了一个jQuery plugin 来简化与 Rails 控制器的基本 RESTful 交互,所以它可以写成:

    $('select#categories').change(function(){
      var category_id = $(this).find('option:selected').val();
      $.read(
        '/categories/{category_id}/products',
        { category_id: category_id },
        function (response) {
          // render your template
        }
      );
    });
    

    虽然$.read 并不比$.getJSON 简单多少,但其他操作将为您节省大量输入。

    实现的其余部分在控制器中,但是您在如何实现方面还有很多余地,所以如果没有更多信息,我真的无法猜测什么会对您有所帮助。

    【讨论】:

    • 嗨,亚当。感谢您的详细说明..抱歉没有提供太多细节..我会试用您的代码并更新状态...再次感谢...sameera
    • 感谢亚当,我终于启动并运行了,感谢您的帮助
    • @sameera207,您能分享一下最终对您有用的代码吗?我自己从事类似的任务并找到了这篇文章。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 2013-03-12
    • 2016-03-02
    • 1970-01-01
    • 2017-02-25
    • 2021-02-10
    • 1970-01-01
    相关资源
    最近更新 更多