我正在尝试在cancancan对象上自定义字段:
projectsAPI = Project.accessible_by(current_ability).select('projects.name, projects.price * 5 as new_price')
respond_to do |format|
format.json { render :json => {
:project_data => projectsAPI
}
}
问题是当我检查API结果时,它只返回所有项目字段,而没有.select
语句中的任何内容。
当我检查日志时,查询中包含自定义字段,但还包含项目中的其余字段。
如何自定义cancancan对象的json API返回中的字段?
答案 0 :(得分:1)
.to_sql
的外观如何?
您是否尝试过子查询?这就是我经常解决CanCan问题的方法。
projectsAPI = Project.where("projects.id IN (?)", Project.accessible_by(current_ability).select(:id).to_sql).select('projects.name, projects.price * 5 as new_price')