提取 hstore 键并将其放入数据表中的列

extract hstore key and make it into a column in datatable

我目前正在尝试构建一个 table 以在单独的列中显示用户列表及其属性。 它是这样的:


用户1 | user1 邮箱 | user1 管理员角色 | user1 组织者角色


用户 2 |用户 2 邮箱 | user2 管理员角色 | user2 组织者角色


用户 3 |用户 3 邮箱 | user3 管理员角色 | user3 组织者角色

但是,admin 和 organizer 属性存储在名为 activities 的 hstore 列中。

我建数据的时候table浏览器returns这个错误

DataTables warning: table id=DataTables_Table_0 - Requested unknown parameter 'activities.organiser' for row 0. For more information about this error, please see http://datatables.net/tn/4

这是我构建 table 列的代码 在 manage_user_controller.rb

 private

 def load_columns
  columns = []
  columns << {:data => "id", :title => "ID"}
  columns << {:data => "email", :title => "Email"}
  columns << {:data => "created_at", :title => "Created"}
  columns << {:data => 'activities.organiser', :title => "Organiser Role"}
  columns << {:data => 'activities.admin', :title => "Admin Role"}
  columns << {:data => "id", :title => ""}
  return columns
 end

在我的 users_datatable.rb

private

 def data
  results = []
  users.each_with_index do |user, index|
   cols = {"id" => "#{user.id}"}
   cols.merge!("email" => "#{user.email}")
   cols.merge!("created_at" => "#{user.created_at}")
   cols.merge!("activities" => "#{user.activities.organiser}")
   cols.merge!("activities" => "#{user.activities.admin}")
   #cols.merge!("activities" => "#{user.activities.admin_events}")
   results << cols
  end
  return results
 end

我试图在控制器中将 "activities.organiser" 更改为 "activities",它会加载一些值,但我无法对活动本身中的所有子属性使用活动,因为那是错误的.

那么,我应该如何使用 hstore 列中的键值对正确填充数据table?

非常感谢。

好的,我设法解决了。

在manage_users_controller.rb

 def load_columns
  columns = []
  columns << {:data => "id", :title => "ID"}
  columns << {:data => "email", :title => "Email"}
  columns << {:data => "created_at", :title => "Created"}
  columns << {:data => "organiser", :title => "Organiser Role"}
  columns << {:data => "admin", :title => "Admin Role"}
  columns << {:data => "id", :title => ""}
  return columns
 end

在user_datatable.rb

def data
  results = []
  users.each_with_index do |user, index|
   cols = {"id" => "#{user.id}"}
   cols.merge!("email" => "#{user.email}")
   cols.merge!("created_at" => "#{user.created_at}")
   cols.merge!("organiser" => "#{user.activities.organiser}")
   cols.merge!("admin" => "#{user.activities.admin}")
   #cols.merge!("activities" => "#{user.activities.admin_events}")
   results << cols
  end
  return results
 end

两个文件中的名称必须相同。