小编rad*_*und的帖子

Ember.js:路由器/路由和StateManager/State之间有什么区别?

似乎较旧的路由使用StateManager示例和较新的示例使用的概念Router.有什么区别以及为什么要使用其中一个?

routes ember.js ember-old-router

9
推荐指数
1
解决办法
805
查看次数

Ember.js路由:如何设置默认路由立即渲染?

我敢肯定,当我深入挖掘时,这将变得清晰,但是现在,如何实现这一目标并不明显.

我正在关注有关路由的这篇有用的SO文章的信息,但是示例中缺少一个重要的部分,即如何在不必单击"主页"链接的情况下立即呈现"主页"视图?

我已经开始深入研究文档以试图理解这一点,但同时为后代回答似乎是一个有用的问题.

我一直在玩与工作的jsfiddle例如,从上面的问题,在这里,并与该其他例子比较我发现,似乎有默认的路由工作

到目前为止,它仍然是一个谜.

当前代码:

App.Router = Em.Router.extend({
  enableLogging: true,
  location: 'hash',

  root: Em.State.extend({
    // EVENTS
    goHome: Ember.State.transitionTo('home'),
    viewProfile: Ember.State.transitionTo('profile'),

    // STATES
    index: Em.State.extend({
        route: "/",
        redirectsTo: 'home'
    }),

    home: Em.State.extend({
        route: '/home',
        connectOutlets: function(router, context) {
            var appController = router.get('applicationController');
            appController.connectOutlet('home');
        }
    }),

    // STATES
    profile: Em.State.extend({
        route: '/profile',
            connectOutlets: function(router, context) {
              var appController = router.get('applicationController');
              appController.connectOutlet('profile');
            }
        }),
        doOne: function() {
            alert("eins");
        }
  }) 
});
Run Code Online (Sandbox Code Playgroud)

更新:解决方案

事实证明,我使用的例子不起作用的原因是因为它使用Em.State.extend而不是Em.Route.extend …

routing ember.js ember-old-router

7
推荐指数
3
解决办法
1万
查看次数

我怎样才能弄清楚在我的rails应用程序中生成所有这些额外的sqlite3选择的位置?

我试图找出我的rails应用程序生成一堆额外查询的位置.我需要一些关于如何解决它的想法.或者,如果有人能给我一些提示,我将不胜感激.

我得到这些:

  SQL (1.0ms)    SELECT name
 FROM sqlite_master
 WHERE type = 'table' AND NOT name = 'sqlite_sequence'

  SQL (0.8ms)    SELECT name
 FROM sqlite_master
 WHERE type = 'table' AND NOT name = 'sqlite_sequence'

  SQL (0.8ms)    SELECT name
 FROM sqlite_master
 WHERE type = 'table' AND NOT name = 'sqlite_sequence'
Run Code Online (Sandbox Code Playgroud)

每次向DB请求时反复重复(单次请求多达70次)

我尝试安装一个跟踪查询源的插件,但它确实没有任何帮助.我正在使用hobofields gem,dunno如果这就是它正在做的事情但我现在有点坚持它

有关追捕这些额外查询来源的任何提示?

sqlite profiling ruby-on-rails

5
推荐指数
1
解决办法
808
查看次数

如何使用em_mysql2解决"连接仍在等待结果"错误

我在Goliath(eventmachine)下使用em_mysql2的activerecord.最奇怪的事情发生在我的用户模型上.当我第一次对/ users进行POST时,它只能按预期找到.当我做第二次POST时,我收到错误.

Mysql2::Error: This connection is still waiting for a result, try again once you have the result: INSERT INTO `users` (... and so on ...)
Run Code Online (Sandbox Code Playgroud)

对于我的任何其他模型或路线,都不会发生这种情况.我假设如果数据库连接处于混乱状态,我会在其他请求上看到相同的错误但是没有 - 所有其他数据库更新和GET请求似乎都运行正常.

有谁知道这只会发生在我的用户模型和仅用于User.save操作的情况下?活动记录是否以某种方式存储它用于执行Model.save的数据库连接并重新使用它?

编辑:

当我写这个问题时我不知道提到我使用ActiveRecord作为ORM.我也没有提到我异步向Mongo数据库发送请求以获取用户身份验证信息.

我的解决方案

事实证明,这个错误发生的唯一时间是来自Mongo的响应在MySQL的响应之前回来,这导致MySQL响应被不同的光纤接收而不是发出请求的光纤.由于我使用的MySQL2光纤实现使用光纤的objectID来管理连接,这似乎导致了这个问题.

ActiveRecord + MySql2 + Fibers + Goliath中的整体连接池不是完全支持的配置.(从那时起可能会有一些进展)

ruby activerecord eventmachine mysql2

5
推荐指数
1
解决办法
1884
查看次数

如何在没有嵌套的情况下从关系中向渲染的JSON添加属性?

这是问题:我正在使用活动记录并返回一些照片对象.这些照片对象的最终消费者将成为一个移动应用程序.

响应需要有移动开发人员返回的缩略图版本请求JSON回来看起来像这样.

{
"root_url":'http://place.s3.amazonaws.com/folder/',
"image_300":'image_300.jpg',
"image_600":'image_600.jpg',
"image_vga":'image_VGA.jpg',
"image_full":'image.jpg'
}
Run Code Online (Sandbox Code Playgroud)

而不是这样的:

{
"root_url":'http://place.s3.amazonaws.com/folder/',
"thumbnails": {
  "image_300":'image_300.jpg',
  "image_600":'image_600.jpg',
  "image_vga":'image_VGA.jpg',
  "image_full":'image.jpg'
 }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,简单的方法是为每个缩略图创建列并使其工作.我不喜欢被锁定,但因为如果我们想要不同的缩略图以后它会意味着向数据库添加列等.我更愿意在模型类中指定缩略图或者有一个单独的缩略图表拇指每排表.

我在一个连接中使用了GROUP_CONCAT来查看delegate,composition_of,使用:method => in to_json ..这些看起来都不像选项.是否有捷径可寻?

基本模型示例:

class Photo < ActiveRecord::Base
  has_many :thumbnails, :as => :thumbs_for #polymorphic
end

class Thumbnail < ActiveRecord::Base
  # columns = name, filename
  belongs_to :thumb_for, :polymorphic => true
end
Run Code Online (Sandbox Code Playgroud)

到目前为止,结果看起来像是基于jesse reiss的答案

def as_json(options)
  options ||= {} #even if you provide a default, it ends up as nil
  hash = super(options.merge({:include => :thumbnails}))
  if thumbs = …
Run Code Online (Sandbox Code Playgroud)

ruby activerecord json ruby-on-rails

1
推荐指数
1
解决办法
4458
查看次数