首页 > 解决方案 > 将数据从表单传输到数据表

问题描述

我正在使用 ajax-datatables-rails gem 将 datatables jquery 插件与服务器端处理一起使用。

我有下面的表格和表格来过滤表格中未显示的数据。

这是我的 index.html.erb 文件中的表格:

<table id='dttb' role='datatable' class="table table-striped table-bordered" data-source="<%= datatable_users_path(format: :json) %>">
</table>

这也是我在索引中的表格:

<%= form_tag(datatable_users_path, method: :get) do %>
<%= submit_tag 'Apply filters' %>

我的控制器正在像这样渲染 json:

respond_to do |format|
  format.html { render :layout => 'application' } # index.html.erb
  format.xml  { render :xml => @users }
  format.json { render json: UserDatatable.new(params) }
end

我的 user_datatable.rb 用这个得到它的 raw_record:

def get_raw_records
@users = User.all
if(@id.present?)
  @users = @users.id(@id)
end

return @users
end

问题是最后一个文件中的这个@id。这应该是我的表单提供给控制器的 params[:id],我想在范围内使用它来过滤 User.all ,以便表格仅显示通过范围的条目。

我不明白如何将表单获取的数据传递给 user_datatable.rb

在 gem github上有一种方法可以做到这一点,但它似乎不适用于我在控制器中获取的表单数据。

你们对如何做到这一点有任何想法吗?

标签: ruby-on-railsrubyruby-on-rails-5

解决方案


推荐阅读