Tag: json

在REST JSON结果中包含has_many结果

我有一个名为List的模型has_many :entries 。 像往常一样,Rails 3为List生成了这个show方法 def show @list = List.find(params[:id]) respond_to do |format| format.html # show.html.erb format.json { render json: @list } end end 如何更改format.json以包含json响应中@list的entries结果? 我知道我可以将@list转换为Hash,将.entries的哈希值添加到那个,然后渲染哈希,但我怀疑Rails有更优雅的技巧。

如何将带有JSON字符串的数组转换为JSON对象(ruby)

我有一个数组,其内容如下: [ [0] { “name” => “Mark”, “id” => “01”, “description” => “User”, }, [1] { “name” => “John”, “id” => “02”, “description” => “Developer”, } ] 注意:现在,Array的每个项都是一个哈希(不是字符串)。 也就是说,如果我puts myarray[0].class我得到hash作为回报。 我希望能够创建一个我可以作为object[i].field引用的object[i].field 。 例如,我希望能够通过调用object[0].name来获取“Mark”,或者通过调用object[1].description获取“Developer”。 这可能吗? 我试图利用.to_json方法对付我的数组,但它并不能完全满足我的需求。 谢谢。

使用Android API为Android App创建Web前端。

提前谢谢你回答这个问题。 这是一个场景,我想要一些指导方针的建议。 我有一个Android应用程序的音乐流媒体与以下function 音乐流媒体 创建播放列表 用户登录/注销 按类别搜索专辑或艺术家或流派FM Radio Streaming 推送通知 均衡器等。 我还有一个在Ruby on Rail(Mysql数据库)中创建的后端,用于音乐管理,如添加歌曲,流派,专辑和艺术家。 它还处理发送推送通知和所有。 现在我想为用户创建一个网络前端,通过他们的笔记本电脑或桌面欣赏歌曲,这样我就可以让我的用户灵活地播放歌曲,查看他们在Android设备中创建的播放列表。 这是主要问题: 如何创建前端以使用我的Android应用程序正在使用的json api,以便我不必为该网站创建另一个后端。 如果有可能,请告诉我。 如果不能使用json api那么我该怎么办才能避免另一个后端工作?

RABL的JSON输出不符合标准吗? 它可以?

所以我有一个非常简单的rabl视图,它将支持xml和json(curr.rabl)的输出: collection @currencies => “currencies” attributes :code, :name 我的rabl配置: Rabl.configure do |config| config.include_json_root = false config.include_child_root = false config.xml_options = { :skip_types => true, :camelize => :lower } config.include_xml_root = false end rabl为xml和json提供的输出: XML: AFN Afghan Afghani AFA Afghanistan Afghani JSON: { currencies: [ { code: “AFN”, name: “Afghan Afghani” }, { code: “AFA”, name: […]

从Rails(表单)向Javascript发送数据

我在Rails中存储了一些数据,然后我从Javascript访问。 (我正在使用gon gem这样做)。 当我在控制器中对字符串值(对于gon)进行硬编码时,它工作正常,我可以从javascript访问这些数据: #set in rails, available in JS gon.stuff = { “1” => “one stuff\n print ‘hi’.. “, “2” => “two stuff\n print ‘by’ “} 但是,当我通过Rails表单提交数据(到Post的’stuff’列)时,它最终会“过度字符串化”,因此它在Javascript中显示为一个完整的字符串: post.stuff text_area: { “1” => “stuff about one\n more stuff.. “, “2” => “two stuff\n more stuff”} 在rails中设置数据: gon.stuff = @post.stuff JS数据最终为完整字符串: “{ “1” => “stuff about […]

为什么我会在保存重复的Ruby on Rails模型时遇到500错误(未定义的方法’to_model’

我是铁杆新手,但在某些事情上仍然模糊不清 我发送json post请求到/microposts/10/duplicate.json复制微博。 路线转到微博#duplicate Controller的行动是: def duplicate micropost = current_user.microposts.find(params[:id]) new_micropost = micropost.dup respond_with new_micropost.save end 请求的服务器日志是: Started POST “/microposts/15/duplicate.json” for 180.181.247.76 at 2015-09-06 11:00:38 +0000 Processing by MicropostsController#duplicate as JSON Parameters: {“_json”=>15, “id”=>”15”, “micropost”=>{}} User Load (0.3ms) SELECT “users”.* FROM “users” WHERE “users”.”id” = ? LIMIT 1 [[“id”, 2]] Micropost Load (0.3ms) SELECT “microposts”.* […]

通过Rails将对象作为变量发送到Mandrill

我正在将一个电子邮件模板从Rails转换为Mandrill,其内容需要相当数量的数据,其中一些数据通过多个关联嵌套。 因此,我想通过Mandrill的global_merge_vars传递对象,例如(简化)以下: [{ ‘name’=>’order’, ‘content’=> @order.to_json(include: { user: { only: :first_name } }, methods: [:method1, :method2, :method3, :method4]) }] 它通过orderr变量下的mandrill模板,类似于以下内容: {“id”:11,”number”:”xxxx”,”item_total”:”112.0″… “user”:{“first_name”:”Steve”},”method1″:”£0.00″,”method2″:”£112.00″, “method3″:”£112.00″,”method4″:”£0.00”} 问题是,我无法访问order任何内容(使用Handlebars),即{{order.id}} , {{order[‘id’]}}等不会工作。 将数据分解为大量变量不是一种选择,因为一些元素是集合及其关联。 我相信问题就出现了,因为在为Mandrill编译变量时所有内容都是字符串化的 – 因此打破了JSON对象 – 下面是一段发送的内容: “global_merge_vars”=>[{“name”=>”order”, “content”=>”{\”id\”:11, \”number\”:\”xxxx\”,\”item_total\”:\”112.0\”… 我似乎无法找到任何处理这个的文档/建议,所以我想知道是否可以传递这种性质的数据,如果是这样,如何正确传递它以便能够访问Mandrill中的对象模板。 任何建议非常感谢! 史蒂夫。

Rails json api只返回created_at和updated_at

我打开了一个json API来获取自行车的数据。 API工作正常,它返回json,但由于某种原因,它只返回某些字段,即created_at和updated_at字段。 这是我的数据库中的内容: => # 这是我的API返回的内容: {“id”:1,”created_at”:”2015-02-04T08:21:27.183Z”,”updated_at”:”2015-02-04T08:21:27.183Z”} 这是我的控制器代码: before_action :set_bike, except: [:index, :create] respond_to :json def show respond_with(@bike) end def set_bike @bike = Bike.find(params[:id]) end def bike_params params.require(:bike) .permit(:status, :model, :network => [:name], :location => [:latitude, :longitude]) end 我的路线默认为json。 在我的自行车模型中,没有额外的as_json方法。 任何想法都是我错过’状态’和’位置’的原因

Rails多格式.json

如何编写多个format.json响应,如: def index @books = Book.all @user = @books.map { |u| u.user }.uniq respond_to do |format| format.html format.json { render json: @books } format.json { render json: @user } end end 以更好的方式?

Ruby on Rails:无法安装JSON gem

当我尝试创建一个新的Rails应用程序rails new app ,该过程在尝试安装JSON gem时停止。 所以,我尝试单独安装它,使用: gem install json 但是我收到以下错误消息: Building native extensions. This could take a while… ERROR: Error installing json: ERROR: Failed to build gem native extension. /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb creating Makefile make xcrun cc -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin11.0 -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin11.0 -I. -DJSON_GENERATOR -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -arch i386 -arch x86_64 -g -O3 -pipe -fno-common -DENABLE_DTRACE -fno-common -pipe […]