Tag: json

在Rails <4中为Postgres JSON列设置默认值

所以我开始使用Postgres JSON数据类型,现在你可以用它做很多有趣的事情 。 在我的一个Rails应用程序中还没有Rails 4( 已经添加了对Postgres JSON的支持 ),我添加了一个这样的JSON列: create_table :foo do |t| t.column :bar, :json end 但我无法弄清楚如何为列设置默认值。 我尝试了所有变体,如{} , ‘{}’ , ‘{}’::json , ‘[]’::json等。但我在迁移运行时遇到错误或者它根本不起作用,这意味着迁移运行但是,当我创建一个新的Foo , bar是nil 。

如何渲染部分字符串?

如何将部分字符串呈现为字符串,以便将其作为JSON响应的一部分包含在内? 我必须将它放入JSON响应中,以便为可能的错误消息留出空间。 以下代码给出了500服务器错误。 如果我只使用一个简单的render ,那么令人惊讶的是它有效。 好吧,它只发回纯HTML,无法解析为Javascript。 码 respond_to do |format| format.html { redirect_to post_path(post) } format.js { { error: “”, content: (render_to_string partial: ‘/comments/comment’, locals: {comment: comment}, layout: false ) } } end 错误 缺少模板缺少模板注释/创建,应用程序/创建{:locale => [:en],:formats => [:js,:html],:handlers => [:erb,:builder,:raw,: ruby,:jbuilder,:haml]}。 搜索:*“C:/ Users / Chloe / workspace / project / app / views” 工作,但发回纯HTML […]

使用active_model_serializers序列化模型数组

我试图使用gem active_model_serializers将模型的序列化版本作为参数发送到视图 #app/serializers/admin_serializer.rb class AdminSerializer true).page(params[:page]).per(10) @page_entries_info = view_context.page_entries_info @admins # render json: @admins respond_to do |format| format.html format.js format.json {render json: @admins} end end #app/views/dashboard/admins/index.html.erb 以上调试产生以下响应: — ‘{“data”:{“id”:”1″,”type”:”admins”,”attributes”:{“email”:”tech@bluesapling.com”,”access_locked?”:false}}}’ //returned by the first debug — – ‘{“object”:{“id”:36,”email”:”aubrey_schmitt@feeneykoch.io”,”created_at”:”2016-03-28T05:15:17.546Z”,”updated_at”:”2016-03-28T05:15:17.546Z”},”instance_options”:{},”root”:null,”scope”:null}’ – ‘{“object”:{“id”:20,”email”:”alysa_johnston@thompson.io”,”created_at”:”2016-03-28T05:15:16.304Z”,”updated_at”:”2016-03-28T05:15:16.304Z”},”instance_options”:{},”root”:null,”scope”:null}’ – ‘{“object”:{“id”:22,”email”:”kristofer.langosh@kunzeluettgen.com”,”created_at”:”2016-03-28T05:15:16.459Z”,”updated_at”:”2016-03-28T05:15:16.459Z”},”instance_options”:{},”root”:null,”scope”:null}’ – ‘{“object”:{“id”:37,”email”:”beryl_keler@wiza.biz”,”created_at”:”2016-03-28T05:15:17.624Z”,”updated_at”:”2016-03-28T05:15:17.624Z”},”instance_options”:{},”root”:null,”scope”:null}’ – ‘{“object”:{“id”:5,”email”:”wilhelmine_buckridge@crona.io”,”created_at”:”2016-03-28T05:15:15.139Z”,”updated_at”:”2016-03-28T05:15:15.139Z”},”instance_options”:{},”root”:null,”scope”:null}’ – ‘{“object”:{“id”:14,”email”:”edward_wisoky@corkery.net”,”created_at”:”2016-03-28T05:15:15.838Z”,”updated_at”:”2016-03-28T05:15:15.838Z”},”instance_options”:{},”root”:null,”scope”:null}’ – ‘{“object”:{“id”:27,”email”:”leonor@jerde.biz”,”created_at”:”2016-03-28T05:15:16.848Z”,”updated_at”:”2016-03-28T05:15:16.848Z”},”instance_options”:{},”root”:null,”scope”:null}’ – ‘{“object”:{“id”:2,”email”:”carley@wyman.net”,”created_at”:”2016-03-28T05:15:14.873Z”,”updated_at”:”2016-03-28T05:15:14.873Z”},”instance_options”:{},”root”:null,”scope”:null}’ – ‘{“object”:{“id”:10,”email”:”ervin.gleichner@cremin.org”,”created_at”:”2016-03-28T05:15:15.527Z”,”updated_at”:”2016-03-28T05:15:15.527Z”},”instance_options”:{},”root”:null,”scope”:null}’ – ‘{“object”:{“id”:15,”email”:”lonzo.dickens@johnscole.name”,”created_at”:”2016-03-28T05:15:15.916Z”,”updated_at”:”2016-03-28T05:15:15.916Z”},”instance_options”:{},”root”:null,”scope”:null}’ […]

Fullcalendar结束日期错误一天

我正在制作fullCalendar支持的汽车预订function。 这是coffescript文件。 updateEvent = (event, delta, revertFunc) -> $.ajax type: “PUT” dataType: “json” success: (data) -> alert “Success” error: (data) -> revertFunc() errors = data.responseJSON.reservations[0][1] for message of errors alert errors[message] url: event.updateUrl data: reservation: reservation_start: event.start.format(‘DD-MM-YYYY’) reservation_end: event.end.format(‘DD-MM-YYYY’) transport_id: event.transport_id user_id: event.user_id $(document).ready -> $(“.calendar”).fullCalendar events: gon.path eventDrop: updateEvent eventResize: updateEvent 这是带有事件的JSON feed。 [{“start”:”2014-12-17T00:00:00.000Z”,”end”:”2014-12-21T00:00:00.000Z”,”title”:”Cassio […]

在Rails中将所有控制器参数从camelCase转换为snake_case的最佳方法是什么?

正如您所知,JSON命名约定主张使用camelSpace,Rails主张使用snake_case作为参数名称。 在rails控制器中将所有请求的参数转换为snake_case的最佳方法是什么? 由此: { … “firstName”: “John”, “lastName”: “Smith”, “moreInfo”: { “mealType”: 2, “mealSize”: 4, … } } 对此: { … “first_name”: “John”, “last_name”: “Smith”, “more_info”: { “meal_type”: 2, “meal_size”: 4, … } } 谢谢

Rails:NoMethodError(_controller的未定义方法_url。在创建之后我似乎无法正确响应json。为什么?

项目清单 我的config / routes.rb文件…… Rails.application.routes.draw do namespace :api, defaults: {format: ‘json’} do namespace :v1 do resources :hotels do resources :rooms end end end 我的app / controllers / api / v1 / hotels_controller.rb module Api module V1 class HotelsController < ApplicationController respond_to :json skip_before_filter :verify_authenticity_token def index @hotels = Hotel.all respond_with ({hotels: @hotels}.as_json) #respond_with(@hotels) end def […]

如何在Rails中构建由多个模型组成的JSON响应

首先,期望的结果 我有User和Item模型。 我想构建一个如下所示的JSON响应: { “user”: {“username”:”Bob!”,”foo”:”whatever”,”bar”:”hello!”}, “items”: [ {“id”:1, “name”:”one”, “zim”:”planet”, “gir”:”earth”}, {“id”:2, “name”:”two”, “zim”:”planet”, “gir”:”mars”} ] } 但是,我的User和Item模型具有的属性不仅仅是那些。 我找到了一种方法让它起作用,但要注意 ,它不漂亮……请帮助…… 更新 下一节包含原始问题。 最后一节显示了新的解决方案。 我的黑客 home_controller.rb class HomeController Observation.new(current_user, @items).to_json } end end end observation.rb # NOTE: this is not a subclass of ActiveRecord::Base # this class just serves as a container to aggregate all […]

渲染:json有额外的数据

我有一个名为Todo的模型,我渲染了这个: format.json { render :json => @todo } 每个Todo属于一个列表。 我想将@todo.list.completion_percentage的值添加到JSON,因为我需要这个来更新UI(AJAX请求),所以JSON看起来像这样: { “todo”: { “created_at”: “2011-02-26T19:39:43Z”, “updated_at”: “2011-02-26T19:53:13Z”, “done”: true, “text”: “Apples”, “id”: 10, “list_id”: 2, “user_id”: 1, “due_date”: null // BELOW THIS LINE SHOULD BE IMPLEMENTED “list”: { “completion_percentage”: 63 } } } 我尝试了各种各样的东西但没有效果。 谁能帮我?

在Rails中过滤json渲染

如果我只想返回的最佳方式是什么:id和:JSON中的name字段 到目前为止,我有: format.json { render :json => @contacts.map(&:attributes) , :only => [“id”]} 但是“name”属性在:only部分中不起作用,因为它不是数据库中的列(它在模型中定义为firstname + lastname) 谢谢!

如何在使用API​​密钥时跳过Devise身份validation?

我正在我的应用程序上使用Devise,并希望创建一个全局API密钥,可以访问任何人的帐户的JSON数据,而无需登录。 例如,假设我的API密钥是1234 ,我有两个用户创建了两个不同的餐厅。 用户1 – 餐厅1(/餐厅/ 1) 用户2 – 餐厅2(/餐厅/ 2) 我打开一个全新的浏览器,没有登录任何东西,我传入我的URL …/restaurants/2.json?api_key=1234 ,我应该能够访问该餐厅的JSON数据,而无需登录- 作为用户2 什么是最好的方法呢? 我已经按照Railscast#352保护API,所以我可以通过传入API密钥来访问JSON的东西,但我必须登录才能看到任何内容。 编辑1:使用CanCan 我应该提一下,我也在使用CanCan作为角色,但不确定在这种情况下是否会扮演任何角色(双关语)。 编辑2:使用API​​版本控制 我按照Railscast#350和#352教你如何创建REST API版本以及如何使用API​​密钥保护它。 这是我的controllers / api / v1 / restaurants / restaurants_controller.rb的样子: module Api module V1 class RestaurantsController < ApplicationController before_filter :restrict_access respond_to :json def index respond_with Restaurant.all end def show respond_with Restaurant.find(params[:id]) end private def […]