如何在json响应中自定义键?

时间:2016-11-15 04:12:07

标签: mysql ruby-on-rails json

关系:表有很多用户。

我正在使用"包括"使用关联用户打印表详细信息:

Table.includes(:users)

但是如果我为用户使用条件,比如,users.active为:

Table.includes(:users).where( :users => { active: true } )

我正在使用活跃用户的表格。这很好用。但是如果表没有活动用户,则返回空。 我需要的是,即使没有活动用户也打印表格详细信息(在这种情况下,不包括用户部分)。即,如果有活跃的用户,则必须沿着桌子打印,否则只需要打印表格。 所以我在模型中写了一个过滤方法:

has_many :active_users, class_name: "User", :conditions => { active: 'yes'}

并且,在控制器中:Table.includes(:active_users)

现在,对于json回复:

render :json => { :table => @table.as_json(:include => :active_users) }

所以密钥来自" active_users"。

但我喜欢将这个密钥作为"用户"而且我找不到解决方案了。任何人都可以建议一个溶胶。

TIA!

1 个答案:

答案 0 :(得分:0)

覆盖Animal以包含用户

Table#as_json

我建议将用户属性列入白名单,以确保您不会泄露任何敏感信息。