小编Vla*_*lad的帖子

Webrick作为生产服务器与Thin或Unicorn?

似乎理所当然地认为你不能将Webrick用作生产服务器,但我无法真正找到任何提及原因的地方.共识似乎是:"Webrick可以用于开发,但Thin或Unicorn是生产的选择,期限."

我确实查找了瘦服务器的主页,它讨论了请求/秒,但由于没有注释,我不太了解图形.

任何人都可以让我知道为什么我应该使用Thin或Unicorn与Webrick相比?使用Webrick进行开发也有什么好处?我一直在使用Webrick,因为它带有rails,我认为它应该是默认的原因.

顺便说一下,我正在使用Heroku.

ruby-on-rails thin production-environment webrick unicorn

117
推荐指数
1
解决办法
2万
查看次数

为什么当mongodb的好处应该是它的架构更少时,mongoose使用架构?

我是mongodb的超级新手.我正在使用mongoose从node.js访问mongodb,并且知道如何让事情发挥作用,但我不认为我理解为什么它会像它一样工作.

最重要的是,当mongodb的一个突出特点是它没有架构时,我不明白为什么mongoose有'架构'.有人可以开导我吗?谢谢.

mongoose mongodb node.js

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

使用Mongoose(MongoDB)查询嵌套文档

我开始使用mongodb并且很难尝试查询嵌套文档.我有两个模式:

var LinkSchema = new mongoose.Schema({
    url: String,
    name: String
});

var UserSchema = new mongoose.Schema({
    name: String,
    links: [LinkSchema]
});
Run Code Online (Sandbox Code Playgroud)

如您所见,我只是想建立一个简单的书签工具.每个用户都有一个名称和一组链接.每个链接都有一个名称和一个网址.

现在,我要做的是例如,查看某人的链接数组中是否已存在链接.我希望能够做这样的事情(尝试获取vlad的链接集合,然后查看查询链接是否已经属于集合):

app.get("/:query", function(req, res){
  User.findOne({"name":"vlad"}, function(err, user){
    user.links.find({"url":req.params.query}, function(err, foundLinks){
      if(foundLinks){
        res.send("link already exists!");
      } else {
        res.send("link doesn't exist!");
      }
    });
  });
});
Run Code Online (Sandbox Code Playgroud)

当然,这段代码不起作用,因为显然我不能做"user.links.find()".我想我可以只做一个user.links.map来提取网址,然后针对它运行会员资格查询.但我认为这远非正确的解决方案.必须有一种方法可以使用数据库查询本地执行此类操作.有人可以帮忙吗?谢谢!

mongoose mongodb node.js

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

当HTML中嵌入了多个相同图像的实例时,是否会加载图像一次?

如果我在一个页面中多次使用相同的图像,是否会分别加载,占用带宽和流量,或者只加载一个图像,其余的嵌入代码会重复使用图像?

例如,假设我这样做了:

<img src = 'http://img.to/image.jpg"/>
<img src = 'http://img.to/image.jpg"/>
<img src = 'http://img.to/image.jpg"/>
<img src = 'http://img.to/image.jpg"/>
<img src = 'http://img.to/image.jpg"/>
<img src = 'http://img.to/image.jpg"/>
...
<img src = 'http://img.to/image.jpg"/>
<img src = 'http://img.to/image.jpg"/>
Run Code Online (Sandbox Code Playgroud)

和image.jpg是100kb.当浏览器加载此页面时,它会浪费(100Kb*img标签)的流量吗?或者只是加载一个image.jpg并将其重新用于其余的标签?

html browser

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

使用新的Devise进行移动应用程序的身份验证

我正在尝试使用Devisefor my Rails/ iOSapp 实现用户身份验证.我遇到了麻烦,因为我主要是Devise 的" 用户 ",并且正在将它用于纯网络应用程序,所以不需要为幕后发生的事情烦恼太多.现在我必须为基于API的应用程序构建身份验证,这完全是一个不同的世界.

我已经阅读了网络上处理这个主题的每一个教程(由于token_authenticatable已被弃用的事实,它们中的大多数已经过时)但仍然无法理解我需要做什么.

我还阅读了GitHub关于这个问题的原始要点,但仍然不明白他们在谈论什么.

我确信有些人就像我一样,只是一个" 用户 ",Devise所以不知道幕后发生了什么.

任何人都可以为移动应用程序实现基于API的身份验证系统提供简洁的解决方案吗?我的意思是它不可能那么复杂,Devise以前太棒了,因为我需要做的就是跑步rails generate,但这对我来说是个噩梦.

authentication mobile ruby-on-rails devise

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

javascript中的公共和特权方法:为什么这样称呼?

如果我理解正确,根据Douglas Crockford http://javascript.crockford.com/private.html,"特权"方法类似于我们所知的"公共"方法.而"公共"方法则有点不同.

这是我理解的方式:

  1. "Privileged"方法可以访问私有变量,因为它是在定义其余私有变量时在闭包内定义的.

    var C = function(){
      var private;
      this.privilegedMethod = function(){
           /* blah blah */
      };
    }
    var cObj = new C();
    
    Run Code Online (Sandbox Code Playgroud)
  2. "公共"方法是通过原型添加到对象本身之外的对象的方法.

    var C = function(){
       /* blah blah */
    }
    C.prototype.publicMethod = function(){
        /* blah blah */
    };
    var cObj = new C();
    
    Run Code Online (Sandbox Code Playgroud)

我发现这些"特权"和"公共"的定义非常令人困惑.我认为"特权"方法只不过是实际上是一种公共方法,正如我们从面向对象编程中所知道的那样.我认为"公共"方法应该被命名为其他方法.如果您考虑它,它是一种奇怪的函数类型,它是对象的成员但它不能访问任何其他私有变量,这意味着它不会对封装有所贡献.它几乎就像是对象的独立辅助方法.

所以我想知道道格拉斯·克罗克福德为什么会提出这些令人困惑的条款呢?为什么javascript社区采用这些术语?或者如果我对某事有误,请纠正我.

javascript oop encapsulation

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

推送通知与Web套接字实现实时聊天应用程序?

我正在研究为iPhone构建实时聊天应用程序(但这个问题同样适用于Android和其他设备)基本上我希望应用程序在打开时以及关闭时接收实时消息,就像iPhone一样拥有"消息"应用程序.

当它关闭时,我可以使用本地推送通知服务,如APNS,当应用程序打开时,我可以运行自己的websockets服务器或使用第三方提供程序,如PubNub或Pusher,这是我一直在做的事情.

然后我想知道:为什么我不能完全依赖APNS进行实时消息传递,同时应用程序处于打开状态且关闭时?这感觉就像一个更清洁的解决方案,因为它是由一个推送服务器驱动的.有人可以开导我吗?谢谢.

iphone messaging push-notification apple-push-notifications

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

如何将两个范围与OR组合

我有一个标签Feed和一个朋友Feed.我想结合这两个并构建最终的"全部"提要.

对于朋友饲料:

class Post < ActiveRecord::Base
  scope :friendfeed, lambda{|x| followed_by}

  def self.followed_by(user)
    where("user_id IN (?) OR user_id = ?", user.watched_ids, user.id)
  end
end
Run Code Online (Sandbox Code Playgroud)

对于标签Feed:

class Post < ActiveRecord::Base
  scope :tagfeed, lambda{|x| infatuated_with}

  def self.infatuated_with(user)
    joins(:attachments).where("attachments.tag_id IN (?)", user.tags).select("DISTINCT pages.*")
  end
end
Run Code Online (Sandbox Code Playgroud)

我会从控制器中调用这样的东西(我使用Kaminari宝石进行分页):

@tag_feed = Post.tagfeed(current_user).page(params[:page]).per(21)
@friend_feed = Post.friendfeed(current_user).page(params[:page]).per(21)
Run Code Online (Sandbox Code Playgroud)

现在我想要一个通用的饲料,但我迷路了.范围用于缩小范围,但在这种情况下,我正在尝试进行OR操作.做像这样的事情

@mother_of_all_feed = @tag_feed + @friend_feed
Run Code Online (Sandbox Code Playgroud)

将是多余的,我将无法控制出现在单个页面上的帖子数量.我该怎么做呢?谢谢!

顺便说一句,对于标签我有这样的关联设置:

class Post < ActiveRecord::Base
  has_many :attachments
  has_many :tags, :through => :attachments
end

class Tag < ActiveRecord::Base
  has_many :attachments
  has_many :posts, :through => :attachments
end …
Run Code Online (Sandbox Code Playgroud)

database-design ruby-on-rails ruby-on-rails-3 rails-activerecord

23
推荐指数
2
解决办法
1万
查看次数

Ruby on Rails指导Activerecord关联文档不正确?

哇,我一直是这样挣扎了整整一天,下面就以"官方"红宝石导轨导向的文件,才发现,原来我可能已经通过文件一直误导.我只想确认这是否属实.

如果你去http://guides.rubyonrails.org/association_basics.html和2.10.自我加入部分它说:

class Employee < ActiveRecord::Base
  has_many :subordinates, :class_name => "Employee"
  belongs_to :manager, :class_name => "Employee",
    :foreign_key => "manager_id"
end
Run Code Online (Sandbox Code Playgroud)

现在,我是一个新手,只是相信这段代码(我还能做什么?)并编写了一些代码,这是这种自我连接案例的变体.然而,我看得越多,感觉就越不对劲.不:subordinates应该有:foreign_key场而不是:manager?无论如何我只是改变它,以便代码是这样的:

class Employee < ActiveRecord::Base
  has_many :subordinates, :class_name => "Employee", :foreign_key => "manager_id"
  belongs_to :manager, :class_name => "Employee"
end
Run Code Online (Sandbox Code Playgroud)

现在它正在发挥作用.我错过了什么吗?或者官方文件是错的?很难相信官方文件会提供不正确的信息,但也许就是这样.

activerecord ruby-on-rails ruby-on-rails-3

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

如何重新索引CtrlP Vim插件?

我一直在使用CtrlP一段时间,但我仍然没有弄清楚如何重新索引它.因此,每当我想创建一个新文件时,我必须关闭所有现有的vim会话,创建该文件,然后重新打开它们.否则新文件将不会显示在结果中.

虽然这对屁股来说确实是一个巨大的痛苦,但我一直这样做而没有多想.今天我决定最后问.有谁知道如何重新索引CtrlP?我在文档中找不到它.

vim macvim ctrlp

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