Rails 4:使用AJAX在同一页面上动态呈现表单

Rails 4: Dynamically rendering a form on the same page with AJAX

本文关键字:动态 表单 一页 使用 AJAX Rails      更新时间:2023-09-26

我似乎很难找到一些关于如何在同一视图上动态显示表单的好信息。我的意思是,例如,用户在显示视图上单击"元素"的"添加子元素"链接,然后在相同的显示视图上使用AJAX/JS/jQuery或其他东西显示一个用于添加子元素的小表单,当然还有用于编辑现有子元素的相同类型的东西。

我曾尝试在适当的位置使用REST,但没有成功,因为我有几个嵌套对象(有些在其他嵌套对象中),而且这似乎不太适用于行内编辑。

我相信我缺乏信息是因为使用了不正确的搜索术语,所以如果有任何帮助,请为我指明正确的方向。

提前谢谢。

有很多不同的方法可以做到这一点,一种是使用远程表单,比如这个railscasts示例或这个问题的详细答案。另一种方法是从jQuery调用一个控制器并渲染(类似于我在这里的代码):

在javascript:中

$(document.body).on('click', '#user-list-body', function (e) {
    var url = '/get_user_list/
    $.ajax({
        url: url,
        datatype: 'html',
        type: 'GET',
        success: function(data){
            $('#user_table tbody').append(data);
        }
     });
});

在控制器中(注意:大幅简化的版本):

  def get_user_list
     @users = User.all
    respond_to do |format|
      format.html { render :layout => false, :partial => 'users/users_list'}
    end
  end