Tag: backbone.js

Rails批量赋值和Backbone.js

我有一个游戏模型,我想在创建时进行批量分配: def create game = Game.new(params[:game]) … end 但Backbone发送模型属性而不将它们包装在“游戏”参数中,我必须这样做: def create game = Game.new(:title=>params[:title], … ) … end 我希望我的控制器干净,如何使用Backbone.js进行质量分配?

Rails,Backbone,PhoneGap,CORS(Access-Control-Allow-Origin错误不允许)

我正在构建一个使用backbone.js和Rails后端的Phonegap应用程序。 在创建新用户时,我收到了与CORS相关的错误: 我在http://0.0.0.0:8000 python -m SimpleHTTPServer)上运行我的PhoneGap网络应用程序,并在webrick上运行我的Rails应用程序在http://0.0.0.0:3000 rails服务器)。 尝试在Backbone中创建一个新的“Spot”时会出现问题(chrome js控制台): > s = new App.Models.Spot() (creates Spot) > s.save() (returns error Object) OPTIONS http://0.0.0.0:3000/spots.json 404 (Not Found) jquery-1.8.2.js:8416 XMLHttpRequest cannot load http://0.0.0.0:3000/spots.json. Origin http://0.0.0.0:8000 is not allowed by Access-Control-Allow-Origin. 这是我的应用程序控制器: def set_access_control_headers headers[‘Access-Control-Allow-Origin’] = ‘http://0.0.0.0:8000’ headers[‘Access-Control-Request-Method’] = ‘POST, GET’ end 我已经阅读了很多文章,我可以得到的最远的是修改我的routes.rb以包含这个: match ‘*all’ => ‘application#cor’, :constraints […]

未捕获的TypeError:undefined不是函数rails3 / backbone / js

我刚刚开始深入研究javascript以使项目更具响应性,我正在研究backbone.js示例。 我在一个新的Rails 3项目中复制了http://www.jamesyu.org/2011/01/27/cloudedit-a-backbone-js-tutorial-by-example/ 。 我运行该项目并转到主页….并且有一个链接到/#并没有别的。 查看js控制台,我在两个脚本上遇到错误:application.js和backbone.js 这个(backbone.js) backbone-min-0-3-3.js:8Uncaught TypeError: Cannot call method ‘extend’ of undefined 这个(application.js): var App = { Views: {}, Controllers: {}, Collections: {}, init: function() { new App.Controllers.Fffforms(); **error message —> application.js:9Uncaught TypeError: undefined is not a function** Backbone.history.start(); } }; 作为js的新手,这并不是很有意义,我所看到的一切都没有在短期内有所帮助。 任何人都可以告诉我这些错误究竟表明了什么以及如何进行跟进? 一切都检查了比较https://github.com/jamesyu/CloudEdit中的资源,但我从一个新的rails 3项目(不是该repo的克隆)的复制并不完全有效。 任何建议表示赞赏,记住我刚开始学习一些javascript。 编辑: 通过建议,我实际上添加了Jammit gem并将其配置为服务所有js脚本,默认Rails都不是。 现在所有脚本都将进入浏览器(包括控制器)。 不幸的是,这并没有解决原始问题,只是在加载时出现更多错误,从app init流出,这是在chrome […]

Backbone和Rails嵌套路由

我在rails中定义了以下路由: resources :accounts do resources :transactions end 这导致url如下: /accounts/123/transactions/1 有没有一种简单的方法可以将其映射到骨干模型设置?

带有远程Rails服务器的BackBone客户端

背景: 我使用“rails g scaffold hotel name stars:integer”来快速启动(并在数据库中插入一些记录),并在rails app之外编写一个Backbone客户端。 我使用Safari文件在本地打开Backbone客户端:///Users/lg/Workspace/www/index.html用于测试客户端,因为我的想法是将rails服务器放在主机上(例如Heroku)并插入Backbone客户端进入PhoneGap应用程序。 我的骨干客户端只有几行: Hotel = Backbone.Model.extend({ initialize: function(){ console.log(“initialize Hotel”) } }); Hotels = Backbone.Collection.extend({ model: Hotel, url: ‘http://0.0.0.0:3000/hotels’ }); 但是当我获取带有主干的酒店时,rails会使用format.html进行响应,而不是Backbone可以解析的format.json 。 hotels_controller.rb # GET /hotels # GET /hotels.json def index @hotels = Hotel.all respond_to do |format| format.html # index.html.erb format.json { render json: @hotels } end end […]

从Backbone检索rails / devise current_user

我有一个应用程序,我用Rails通过Devise管理注册/进/出。 当我登录时,我被重定向到Backbone启动的Dashboard #index。 我想以某种方式检索Backbone中的current_user.id和current_user.token。 我唯一的想法是在我的dashboard.html.haml中有这个 :javascript window.App.current_user.id = “#{current_user.id}” window.App.current_user.token = “#{current_user.token}”

Backbone.js应用程序可以逐步增强,并可以被搜索引擎抓取吗?

我需要为我的下一个项目实现MVC JavaScript框架,但它和网站一样多,因为它是一个Web应用程序。 是否可以公开数据服务器端,然后解析URL以显示“JS版本”? (我计划将Rails用于服务器端代码)

Backbone和Rails关联:避免JSON HashWithIndifferentAccess错误

我正试图让我的骨干协会在rails应用程序中工作,而我在尝试更新现有模型时遇到了困难。 特别是,Rails抛出以下错误: 在2012-01-04 02:36:14 +1000开始PUT“/ posts / 2”为127.0.0.1 由PostsController处理#update更新为JSON参数:{“post”=> {“content”=>“Seconderona”,“created_at”=>“2012-01-03T10:51:09Z”,“id”=> 2,“ title“=>”第二个测试post“,”updated_at“=>”2012-01-03T10:51:09Z“,”评论“=> [{}]},”id“=>”2“}后期加载( 0.2ms)SELECT“posts”。* FROM“posts”WHERE“posts”。“id”=? LIMIT 1 [[“id”,“2”]]警告:无法批量分配受保护的属性:id已完成500内部服务器错误15ms ActiveRecord :: AssociationTypeMismatch(评论(#70104367824560)预期,获得ActiveSupport :: HashWithIndifferentAccess(#70104367278120)): app / controllers / posts_controller.rb:62: block in update’ app/controllers/posts_controller.rb:61:in中的block in update’ app/controllers/posts_controller.rb:61:in block in update’ app/controllers/posts_controller.rb:61:in block in update’ app/controllers/posts_controller.rb:61:in更新中’ 一些东西: 这是在(例如)触发的: c = window.router.comments.models[0] c.save({content: ‘Changed content’}) 此外,是的,’accepts_nested_attributes_for’出现在模型中。 下面的(违规)代码几乎是从thougtbot的“rails on rails”电子书中逐字记录的,我也尝试过关注骨干关系gem的文档。 […]

Backbone.js前端有RESTful Rails后端吗?

我开始使用PHP开发Web开发世界,然后在最近几年开始使用Rails。 从那时起,我一直在Rails中完成所有的Web项目。 最近,似乎有一种趋势,即将Rails作为纯RESTful后端服务,并使用Backbone.js等前端框架进行所有前端交互。 我想知道你们对它们有什么看法? 这将是最终的未来吗? 同样,除了Backbone.js之外,为此目的还有哪些其他前端框架的替代方案? 另外假设我想支持我的应用程序的桌面版和移动版,这是一条合适的路线吗? 那么我将拥有一个具有不同前端服务的后端服务? 这样我就不需要管理Rails方面的所有视图了? 谢谢!

rails-backbone gem中的EJS和JST模板文件的格式

我正在使用rails-backbone gem( https://github.com/codebrew/backbone-rails )。 为了呈现HTML,它使用了某种类型的javascript模板,即使经过几个小时的搜索,我的名字也无法分辨。 例如,它为视图模板生成这样的文件: # company.jst.ejs <a href="#/”>Show <a href="#//edit”>Edit <a href="#//destroy” class=”destroy”>Destroy 我的问题是:.jst格式是什么? 在Rails 3.1中,什么库处理它? .ejs扩展名的问题相同。 这个模板引擎的名称是什么? 下划线?