Rails属性值以十六进制返回

时间:2014-02-21 03:18:44

标签: ruby-on-rails activerecord join associations wice-grid

我正在运行以下有效记录查询

Keyword.joins(:questions, :users, :associations).select("questions.*, keywords.keyword").where(users: {id: @user.id})

使用以下代码使用wice_grid显示结果 -

<%= grid(@questions, show_filters: :false) do |g|
  g.column name: 'ID', attribute: 'id', filter: false
  g.column name: 'Question', model:'Question', attribute: 'question'
  g.column name: 'Keyword', model:'Keyword', attribute: 'keyword'
end %>

问题属性填充得很好,但关键字属性以十六进制值显示,例如#&lt;关键字:0x00000104eb00a0取代。知道为什么吗?任何帮助都非常感谢。

2 个答案:

答案 0 :(得分:0)

您确定应该使用&lt;%=而不是&lt;%标记吗?这显示了任何函数的返回值,因此如果grid返回关键字对象,那将是显示的内容。

答案 1 :(得分:0)

来自https://github.com/leikind/wice_grid#queries-with-join-tables

  

请注意,列的无块定义仅适用于主表中的列,并且不适用于具有以下列的列:model

<%= grid(@questions, show_filters: :false) do |g|
  g.column name: 'ID', attribute: 'id', filter: false
  g.column name: 'Question', model:'Question', attribute: 'question'
  g.column name: 'Keyword', model:'Keyword', attribute: 'keyword' do |question|
    question.keyword.keyword
  end
end %>