0

tags在我的 Rails 应用程序中使用 jQuery Tokeninput。我以前从未处理过 JSON(我是编程新手),但我想知道是否有一种方法可以创建然后用 .json 中的字符串值填充一个 json 文件Profile.all

这是index我的TagsController

class TagsController < ApplicationController
  def index
    @tags = Tag.where("name like ?", "%#{params[:q]}%")
    respond_to do |format|
      format.html
      format.json { render :json => @tags.map(&:attributes) }
    end
  end
end

如果可能的话,有人可以给我一个关于如何完成的想法吗?如果需要更多代码,请告诉我!

说明:我想这样做的原因是为了限制@tags已经存在的标签。

4

1 回答 1

0

那么,如果我理解正确,您发布的代码可以正常工作吗?但是现在您不想将 JSON 输出流式传输到浏览器,而是将其写入文件?

看看 Rails 如何在源代码中呈现 JSON 。这非常简单,它只是to_json在任何正在渲染的对象上调用该函数。

还可以看看Yehuda Katz 的这篇出色的文章。查找序列化部分。

现在,要将所有 Profile 模型以 JSON 格式保存到文件中,您可以执行以下操作:

File.open("all_profiles.json", "w") { |f| f.write(Profile.all.to_json) }

编辑

加上你的解释,这里有更多信息:

模型中某些字段的 JSON:

Profile.all.collect { |p| { :name => p.name, :city => p.city } }.to_json

这将在 Ruby 中为您提供这样的数组:

[ {:name = "John", :city => "Liverpool"}, {:name = "Jimi", :city => "Seattle"} ]

像这样的JSON:

[ {"name":"John", "city":"Liverpool"}, {"name":"Jimi", "city":"Seattle"} ]
于 2011-09-29T05:53:31.543 回答