ruby-on-rails-3 – 如何让sencha架构师从rails中读取json
发布时间:2020-12-17 02:03:20 所属栏目:百科 来源:网络整理
导读:我有一个 Ruby on Rails 3新闻应用程序.它需要标题,一些内容和图像附件(使用回形针宝石).我正在使用RABL gem来提供一个 JSON feed的Sencha Architect项目. 问题是Sencha Architect无法读取JSON url.当我尝试将数据加载到商店时,我收到一条非常无益的消息,说
我有一个
Ruby on Rails 3新闻应用程序.它需要标题,一些内容和图像附件(使用回形针宝石).我正在使用RABL gem来提供一个
JSON feed的Sencha Architect项目.
问题是Sencha Architect无法读取JSON url.当我尝试将数据加载到商店时,我收到一条非常无益的消息,说“无法使用提供的配置加载数据”和一个链接以打开浏览器中的URL(打开就好了). Sencha Architect是否有某个日志提供有关此错误的更多信息? 以下是RABL文件: # show.rabl object @article attributes :title,:body node(:mobile_url) { |article| article.image.url(:mobile,false) } node(:tablet_url) { |article| article.image.url(:tablet,false) } node(:original_url) { |article| article.image.url(:original,false) } # index.rabl collection @articles extends "articles/show" RABL默认情况下不提供内容类型,所以我在文章控制器中有这个: before_filter :default_format_json def default_format_json if(request.headers["HTTP_ACCEPT"].nil? && params[:format].nil?) request.format = "json" end end 这是Architect生成的代码,用于显示我使用的配置选项: # Stories store Ext.define('MyApp.store.Stories',{ extend: 'Ext.data.Store',requires: [ 'MyApp.model.Story' ],config: { autoLoad: true,model: 'MyApp.model.Story',storeId: 'Stories',proxy: { type: 'jsonp',url: 'https://feedr.org.uk/articles.json',reader: { type: 'json',rootProperty: 'article' } } } }); # Story model Ext.define('MyApp.model.Story',{ extend: 'Ext.data.Model',config: { fields: [ { name: 'title' },{ name: 'body' },{ name: 'mobile_url' },{ name: 'tablet_url' } ] } }); 如何让Sencha Architect读取我的JSON数据?非常感谢您提供的任何帮助. 解决方法
好吧,事实证明Sencha配置没有问题,问题出在我的rails应用程序上.我正在使用RABL gem生成Json响应.需要将RABL配置为以初始化程序的形式生成JsonP响应,如下所示:
# config/initializers/rabl_init.rb Rabl.configure do |config| config.include_json_root = false config.include_xml_root = false config.enable_json_callbacks = true end 重要的选项是enable_json_callbacks = true.它导致RABL作为我的Sencha应用程序可以理解的JsonP提供响应. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |