Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails格式化自定义json输出_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails rails格式化自定义json输出

Ruby 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] 例如,如果要获取用户

我如何格式化我的模型,以便它输出一个带有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]
例如,如果要获取
用户的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=>@控制器中的用户,但我仍然更喜欢活动序列化程序,因为它组织表示层。