我目前正在尝试构建一个表,以便在不同的列中显示具有其属性的用户列表。 它类似于:
user1 | user1电子邮件| user1管理员角色| user1组织者角色
user2 | user2电子邮件| user2管理员角色| user2组织者角色
user3 | user3电子邮件| user3管理员角色| user3组织者角色
但是,admin和organizer属性存储在名为activities的hstore列中。
当我构建数据表时,浏览器会返回此错误
DataTables警告:table id = DataTables_Table_0 - 请求未知 参数' activities.organiser'对于第0行。有关的更多信息 此错误,请参阅http://datatables.net/tn/4
这是我构建表列的代码 在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
我试图改变&#34; activities.organiser&#34;到&#34;活动&#34;在控制器中,它会加载一些值,但我不能使用激活对活动本身的所有子属性,因为这将是错误的。
那么,我应该如何使用hstore列中的键值对正确填充数据表?
非常感谢你。
答案 0 :(得分:0)
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
两个文件中的名称必须相同。