我要在提交俱乐部表格时更新我的​​用户列表,该表格会自动创建俱乐部管理员,而该管理员又是activeadmin中的用户

时间:2018-12-17 09:37:14

标签: javascript ruby-on-rails ruby ajax activeadmin

我的dashboard.rb是:

ActiveAdmin.register_page "Dashboard" do

  menu priority: 1, label: proc{ I18n.t("active_admin.dashboard") }

  content title: proc{ I18n.t("active_admin.dashboard") } do
    # form render 'form'
    # Here is an example of a simple dashboard with columns and panels.

    columns do
      column class: "users" do
        table_for User.all.order(:created_at), input_html: { class: "table table-bordered" } do
          column "User Id", :id
          column "Email", :email
          column "User Role" do |role|
            role.profile.role
          end
        end
      end

      column do
        render partial: 'form', locals: { club: Club.new }
      end

    end
  end
end

我的部分表单位于app / views / admin / dashboard / _form.html.erb中,它是:

<%= semantic_form_for :club, url: admin_clubs_url, method: :post, builder: ActiveAdmin::FormBuilder, remote: true do |club| %>
<%= club.inputs "Details" do %>
    <%= club.input :name, label: 'Club Name' %>
    <%= club.input :email, label: 'Club Admin Email', input_html: { value: '' } %>
    <%= club.inputs for: [:club_profile_attributes] do |ff| %>
        <%= ff.input :country_id, as: :select, collection: Country.get_id_and_name, include_blank: false %>
        <%= ff.input :logo, as: :file %>
        <%= ff.input :email, label: 'Club Email' %>
        <%= ff.input :phone_number_1, label: 'Phone Number' %>
    <% end %>
    <%= club.actions %>
<% end %>

现在如何使用ajax请求来更新dashboard.rb文件中的用户,因此每当创建俱乐部时,我的用户列表都会使用ajax请求/响应进行更新。

1 个答案:

答案 0 :(得分:0)

$('#form_id').on('ajax:success', function(event, data, status, xhr){});

ajax:success和其他custom events可用于处理remote: true格式的响应。您需要将更新的用户列表与响应数据一起发送,然后追加或替换用户列表。