Ruby on rails Rails-如何向json添加自定义属性?
我的项目中有文件类(名为Arquivo,葡萄牙语),文件有名称属性,它是一个大名,带有一些标记、标识符和结尾的“实名”。因此我需要在我的json@files中创建一个新的自定义参数,以便只发送“实名” 名称示例:Ruby on rails Rails-如何向json添加自定义属性?,ruby-on-rails,json,ruby,api,ruby-on-rails-5,Ruby On Rails,Json,Ruby,Api,Ruby On Rails 5,我的项目中有文件类(名为Arquivo,葡萄牙语),文件有名称属性,它是一个大名,带有一些标记、标识符和结尾的“实名”。因此我需要在我的json@files中创建一个新的自定义参数,以便只发送“实名” 名称示例: code-ALM-TAG-TT-TAG-1122-COD12-realNameFile.txt 我已经尝试了这个方法,但在这里他包含了相同的param消息:“它在数组的所有元素中都有效”,我需要为每个元素使用不同的param 我已经做了一些有效的事情,但很难看,我认为有一个更简单的方法
code-ALM-TAG-TT-TAG-1122-COD12-realNameFile.txt
我已经尝试了这个方法,但在这里他包含了相同的param消息:“它在数组的所有元素中都有效”
,我需要为每个元素使用不同的param
我已经做了一些有效的事情,但很难看,我认为有一个更简单的方法:
def all_files
files = Arquivo.all.as_json(include: [:tag])
files = add_cut_name(files)
render json: { files: files }
end
def add_cut_name(files)
files.each do |file|
file["cut_name"] = file["nome"].split('-')[7]
end
files
end
我是这样想的:
def all_files
files = Arquivo.all.as_json(include: [:tag], cut_name: ["nome"].split('-')[7])
render json: { files: files }
end
但这不起作用您可以使用:
您可以使用:
如果
nome
总是在末尾,那么我建议split('-')。最后一个而不是split('-')[7]
。这样,如果split
会产生超过八个元素(这些事情会发生-格式改变,有人会在文件名中添加一个新元素,等等),您仍然会得到预期的结果。如果nome
总是在末尾,那么我建议split('-')。最后一个而不是split('-')[7]
。这样,如果split
产生超过八个元素(这些事情会发生-格式改变,有人会在文件名中添加一个新元素,等等),您仍然会得到预期的结果。
files = Arquivo.all.as_json(include: [:tag]).map { |file| file.merge(cut_name: file['nome'].split('-')[7])}