Ruby on rails rails格式化自定义json输出
我如何格式化我的模型,以便它输出一个带有id和name字段的json文档 因为我的模型有自定义的字段名,我正在使用tokeninput,它需要我将其输出到id和nameRuby on rails rails格式化自定义json输出,ruby-on-rails,ruby,Ruby On Rails,Ruby,我如何格式化我的模型,以便它输出一个带有id和name字段的json文档 因为我的模型有自定义的字段名,我正在使用tokeninput,它需要我将其输出到id和name 有什么想法吗?也许在你的控制器里 require'json' # ... def show_json user_obj_to_json=user.first.to_json 将用户_obj_呈现为_json 结束 您可能希望将唯一选项传递到到\u json :only => [:id, :name] 例如,如果要获取用户
有什么想法吗?也许在你的控制器里
require'json'
# ...
def show_json
user_obj_to_json=user.first.to_json
将用户_obj_呈现为_json
结束
您可能希望将唯一选项传递到到\u json
:only => [:id, :name]
例如,如果要获取用户的id和名称
User.all.to_json :only => [:id, :name]
如果模型不包含OP描述的Id和名称,则在查询数据库时使用自定义选择
User.select('filed1 as id, field2 as name').all.to_json
这里有很多选项,可以使用jbuilder、rabl。但我认为最简单的方法是使用活动模型序列化程序 假设您有一个模型名User 首先安装捆绑包,然后:
rails g serializer user
然后在app/serializers/user_serializer.rb上:
class ArticleSerializer < ActiveModel::Serializer
attributes :id, :name
end
class ArticleSerializer
实际上,我要做的是更改模型中当前字段名的字段名。我现在有了category\u id和category\u name,我只是想把它们都改成id和name。我得到了这个部分,但我的模型没有id或name。它有不同的字段名,我如何通过修改使其以id和name的形式输出?尽管您可以执行如下操作:@users=User.all.to_json:only=>[:id,:name];render:json=>@控制器中的用户,但我仍然更喜欢活动序列化程序,因为它组织表示层。