Tag: json

如何在Rails模型中validation字符串是否为json

我正在构建一个简单的应用程序,并希望能够在数据库中存储json字符串。 我有一个带有json列的表接口,我希望我的rails模型validation字符串的值。 所以类似于: class Interface true, :length => { :minimum => 3, :maximum => 40 }, :uniqueness => true validates :json, :presence => true, :type => json #SOMETHING LIKE THIS :contains => json #OR THIS end 我怎么做?

将文件发送到Rails JSON API

我知道有类似的问题,但我还没有找到一个好的答案。 我需要做的是将一个对象的描述发送到我的一个创建方法,其中包括一些不同的属性,包括一个名为:image,paperclip attachment: has_attached_file :image 现在我已经读过,通过将图像编码和解码为base64,可以直接在JSON中完成发送图像,但这对我来说感觉就像一个肮脏的解决方案。 必须有更好的方法。 另一个解决方案是发送multipart / form-data请求,就像LEEjava在这里描述的那样。 这个的问题是在Rails 3.2.2中没有正确解释请求参数,并且JSON.parse在尝试解析params时吐出错误,或者可能是错误解释某些东西的Rails。 在2012-03-18 15:53:30开始POST“/api/v1/somemodel.json?token=ZoipX7yhcGfrWauoGyog”for 127.0.0.1 + 0200由Api :: V1处理:: SomeController #create as JSON参数:{“ {\ n \“parentmodel \”:{\ n \“superparent_id \”:1,\ n \“描述\”:\“享受花朵”,\ n \“\”:“=> {”\ n {\ n \“someattribute \”:1,\ n \“someotherattribute \”:2,\ n \“image \”:\“image1 \”\ n } \ n“=> {”\ n} \ n}“=> […]

如何在Rails to_json输出中处理HTML实体?

我正在编写一个应用程序,它在后端使用Rails,在前端使用javascript / backbone。 我正在尝试将一些rails模型引导到我的javascript中 。 具体来说,我想将@courses的内容@courses到名为window.courses的js变量中。 我在html.erb文件中有以下内容。 window.courses = JSON.parse(”); 我期待erb预处理器将其渲染为有效的javascript,就像这样 // …但是,相反,我得到的代码包含HTML实体 。 // 显然,当我尝试解析时,我收到了javascript错误。 有谁知道如何处理这些HTML实体以生成有效的JavaScript? 我意识到一个选择是在客户端上取消实体 ,但这似乎是一个迂回的解决方案。 有没有办法让Rails生成不需要转义的JSON?

在Ruby中访问JSON对象

我有一个看起来像这样的json文件: { “Results”: [ { “Lookup”: null, “Result”: { “Paths”: [ { “Domain”: “VALUE1.LTD”, “Url”: “”, “Text1”: “”, “Modules”: [ { “Name”: “VALUE”, “Tag”: “VALUE”, “FirstDetected”: “1111111111”, “LastDetected”: “11111111111” }, { “Name”: “VALUE”, “Tag”: “VALUE”, “FirstDetected”: “111111111111”, “LastDetected”: “11111111111111” } ] } ] } } ] } 如何仅打印域并仅访问ruby中的module.names并将module.names打印到控制台: #!/usr/bin/ruby require ‘rubygems’ require ‘json’ require ‘pp’ […]

在输出为json之前过滤模型的属性

嘿伙计们,我需要输出我的模型作为json,一切都很顺利。 但是,某些属性需要通过一些辅助方法(例如number_to_human_size过滤它们来“美化”。 我该怎么做呢? 换句话说,假设我有一个名为bytes的属性,我想通过number_to_human_size传递它,并将结果输出到json。 如果可能的话,我还想’修剪’输出为json的输出,因为我只需要一些属性。 这可能吗? 有人可以举个例子吗? 我真的很感激。 初步搜索结果提示有关as_json ,但我无法找到与我的情况有关的实际例子。 如果这真的是解决方案,我真的很感激一个例子。 研究 :似乎我可以使用to_json的选项来明确说明我想要哪些属性,但是我仍然需要弄清楚如何通过在它们之前传递它们来帮助它们来“美化”或“过滤”某些属性输出为json。 我会为单个json模型创建一个部分,所以_model.json.erb,然后为我正在使用的动作创建另一个,并在其中简单地使用对象集合渲染部分? 看起来像一堆箍跳过。 我想知道是否有更直接/原始的方式来改变模型的json表示。

渲染json的数组问题

我有这个数组来自我的服务器。 当我使用puts时返回的是这样的: formatted_total_price £66.00 formatted_total_price £128.00 formatted_total_price £246.00 formatted_total_price £243.20 formatted_total_price £242.86 formatted_total_price £242.50 所以我试着这样做: price1.each do |price11| price11.json {render json: price11.as_json} end 但是,这会返回此错误: NoMethodError (undefined method `json’ for [“formatted_total_price”, “£66.00”]:Array): 我想要的是将formatted_total_price和£66.00匹配起来如下所示: “formatted_total_price”:”£66.00″ 这是我拥有的实际代码: doc.xpath(“//script[@type=’text/javascript’]/text()”).each do |text| if text.content =~ /more_options_on_polling/ price1 = text.to_s.scan(/\”(formatted_total_price)\”:\”(.+?)\”/).uniq description = text.to_s.scan(/\”(ticket_desc)\”:\”(.+?)\”/).uniq price = price1 + description price1.each do |price11| […]

如何使用json渲染@ photo.errors(在Rails 4中使用dropzone.js)

Heroku控制台: 开始POST“/照片” 由PhotosController处理#create为JSON 参数:{“utf8”=>“✓”,“authenticity_token”=>“D5pc72xeJ6J / g ==”,“photo”=> {“title”=>“fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff”,“tag_list”=> [“”], “picture”=>#,@ original_filename =“size.jpg”,@ content_type =“image / jpeg”,@ headers =“Content-Disposition:form-data; name = \”photo [picture] \“; filename = \“size.jpg \”\ r \ nContent-Type:image / jpeg \ r \ n“>},”null“=>”“,”commit“=>”上传“} 在941ms内完成500内部服务器错误(ActiveRecord:13.9ms) ArgumentError(’#,@ message = {:title => [“太长(最多30个字符)”]}>’不是与ActiveModel兼容的对象。它必须实现:to_partial_path。): app / controllers / photos_controller.rb:40:在’block(2 level)in create’中 PhotosController def create @photo = […]

如何将javascript对象的javascript值传递给ruby on rails中的控制器?

我有一个任务要在轨道上使用ruby做knockout.js。 我想将javascript值发送给控制器。 我的index.html.erb是 Country State Remove Add Submit $(document).ready(function() { function formatCurrency(value) { return “$” + value.toFixed(2); } var CartLine = function() { var self = this; self.category = ko.observable(); self.product = ko.observable(); self.subtotal = ko.computed(function() { return self.product() ? self.product().price * parseInt(“0” + self.quantity(), 10) : 0; }); // Whenever the category changes, reset […]

Rails模型哈希,排除属性

我试图形成一个看起来像这样的json响应: { “user”: { “birthday”: “2013-03-13”, “email”: “example@example”, “id”: 1, “name”: null, “username”: “example” }, “other_data”: “foo” } 之前,当我刚回到用户时,我用过 render :json => @user, :except => [:hashed_password, :created_at, :updated_at] 保持hashed_pa​​ssword,created_at和updated_at属性不被发送。 有没有办法做到这一点,但也允许与用户一起发送其他数据? 现在我只是逐个添加我想要发送到哈希的属性,但这显然不太理想。

Rails 4不通过JSON更新嵌套属性

我已经搜索了相关的问题,但仍然有问题从我的AngularJS前端返回的rails 4到JSON中更新嵌套属性。 问题:下面的代码概述了从我的Rails4应用程序中从AngularJS传递到Candidate模型的JSON。 Candidate模型有很多Works,我正在尝试通过Candidate模型更新Works模型。 由于某种原因,Works模型无法更新,我希望有人可以指出我缺少的东西。 谢谢你的帮助。 这是候选人AngularJS前端的json: {“id”=>”13”, “nickname”=>”New Candidate”, “works_attributes”=>[ {“title”=>”Financial Analyst”, “description”=>”I did things”}, {“title”=>”Accountant”, “description”=>”I did more things”}]} 然后,Rails通过添加候选标头将此JSON转换为以下内容,但不包括候选标头下的嵌套属性,并且无法通过候选模型更新works_attributes : {“id”=>”13”, “nickname”=>”New Candidate”, “works_attributes”=>[ {“title”=>”Financial Analyst”, “description”=>”I did things”}, {“title”=>”Accountant”, “description”=>”I did more things”}], “candidate”=>{“id”=>”13”, “nickname”=>”New Candidate”}} candidate_controller.rb包含一个简单的更新: class CandidatesController < ApplicationController before_filter :authenticate_user! respond_to :json def update respond_with Candidate.update(params[:id], candidate_params) end […]