小编Pod*_*Pod的帖子

将C++库打包到Rails应用程序中以供Heroku使用

前几天从Heroku支持问下一件事:

我有一个应用程序,需要一个用C++编写的客户端库.我怀疑Heroku可以做到这一点.是否有可能,任何替代方案如何使用Heroku的应用程序安装和使用C++库?

我得到了下一个答案:

我们目前没有办法做到这一点.您需要弄清楚如何打包到您的应用程序并将静态x64二进制文件编译到repo中.

我之前没有这样做过.有没有人有任何好的指针如何将C++库打包到Rails应用程序中,以便它可以与Heroku一起使用?

谢谢.

c++ ruby-on-rails heroku

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

MongoDB - Mongoid map减少基本操作

我刚刚开始使用MongoDB和mongoid.我遇到的最大问题是理解map/reduce功能,以便能够进行一些非常基本的分组等.

可以说我有这样的模型:

class Person
  include Mongoid::Document
  field :age, type: Integer
  field :name
  field :sdate
end
Run Code Online (Sandbox Code Playgroud)

该模型将生成以下对象:

#<Person _id: 9xzy0, age: 22, name: "Lucas", sdate: "2013-10-07">
#<Person _id: 9xzy2, age: 32, name: "Paul", sdate: "2013-10-07">
#<Person _id: 9xzy3, age: 23, name: "Tom", sdate: "2013-10-08">
#<Person _id: 9xzy4, age: 11, name: "Joe", sdate: "2013-10-08">
Run Code Online (Sandbox Code Playgroud)

有人可以展示如何使用mongoid map reduce来获取按照sdate字段分组的那些对象的集合吗?并获得那些共享相同sdate字段的人的年龄总和?

我知道这个:http://mongoid.org/en/mongoid/docs/querying.html#map_reduce 但不知何故,它会有助于看到应用于一个真实的例子.在我猜的模型中,代码在哪里,是需要的范围等.

我可以使用mongoid进行简单的搜索,获取数组并手动构建我需要的任何内容,但我猜地图reduce就是这里的方式.我想象在mongoid页面上提到的这些js函数被提供给在内部进行这些操作的DB.从积极的记录来看,这些新概念有点奇怪.

我在Heroku(mongolab)上使用Rails 4.0,Ruby 1.9.3,Mongoid 4.0.0,MongoDB 2.4.6,虽然我有本地2.0,我应该更新.

谢谢.

ruby-on-rails mongodb mongoid

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

Git - 比较本地和远程而不先获取?

我四处搜寻,发现这个问题没有答案.

我有一个在Heroku上运行的应用程序.从我的本地机器我通常实现,只是:

git add .
git commit -m "whatever change, I know I can add and commit at the same time..."
git push <the-heroku-repo>
Run Code Online (Sandbox Code Playgroud)

然后它上升并更新Heroku应用程序中的主分支.到现在为止还挺好.

现在.我想要另一台机器自动从Heroku仓库中取出并自行更新.

所以我这样做:

git clone <the-heroku-repo>
Run Code Online (Sandbox Code Playgroud)

这让我得到了应用程序,我可以看到git配置:

core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=git@heroku.com:theapp.git
branch.master.remote=origin
branch.master.merge=refs/heads/master
Run Code Online (Sandbox Code Playgroud)

要更新这个新的仓库,我可以做一个拉动:

git pull origin
Run Code Online (Sandbox Code Playgroud)

或者我可以获取和合并:

git fetch origin
git merge origin/master
Run Code Online (Sandbox Code Playgroud)

我的问题

在上面的fetch和merge之间,我可以通过执行以下操作来检查更改:

git log -p master..origin/master
Run Code Online (Sandbox Code Playgroud)

有没有办法找到远程Heroku仓库中的本地主分支和最新版本之间的差异而不提取?只需比较本地和远程并查看更改.我找不到合适的方法.

谢谢.

git compare

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

Facebook应用(iframe)和第三方Cookie

我有一个Rails应用程序在Fabebook内部作为iframe运行.我使用Koala gem进行FB通信(某些部分也使用js SDK)和Devise作为身份验证基础.

一段时间以来,我发现应用程序在iframe中运行的问题存在一些问题.因此无法设置第三方cookie.对于IE,我使用P3P标头,以某种方式缓解问题.

但整件事情让人很困惑.我在雪豹上.

例如:

  • 使用Safari 5.1.1,我设置了"阻止来自第三方和广告商的cookie".该应用程序工作正常,它可以毫无问题地使用.

  • 使用Chrome 5.0.874(最新更新)选中"阻止设置第三方Cookie"选项,以便我的应用设置的两个主要Cookie(应用程序cookie和fbs_xxxx cookie)无法设置,因此应用程序无法运行用户需要始终进行身份验证.

  • Opera 11.52没有引用第三方cookie,浏览器设置为"仅接受我访问过的网站的cookie".我的应用程序可以正常使用该设置.

  • 使用Firefox 7.0.1我的应用程序工作,但我找不到任何处理cookie的设置.只是为了删除它们.

显然我的问题在于Chrome,但同样的设置适用于Safari.所以我真的很困惑.

要求用户允许第三方cookie是解决此问题的唯一方法吗?

谢谢.

更新我当前的工作解决方案

我做了一些额外的研究和测试.我确实尝试使用Rails替代会话存储方法.默认情况下,它们存储在cookie中,但您可以将会话数据存储在内存,数据库等中.但这还不够,因为它仍然使用带有指向您选择的备用存储的指针的cookie.

最后,我设置了一些信息,该URL允许我找到当前登录用户的身份,获取用户并使用Devises sign_in方法手动登录该用户.我不太喜欢它,但现在我可以阻止第三方cookie并仍然有效.我稍后会进行更改,而不是在那里有真正的信息,我将获得一个memcached条目的密钥,从那里我将获得用户(之前设置),毕竟只有我的应用程序应该有权访问该memcached服务器.

谢谢.

cookies facebook ruby-on-rails

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

Nginx在本地作为OS X上的开发环境提供与Puma的Rails应用程序

我正在尝试在MAC上本地设置Rails和Puma的Nginx来练习一些设置.最终我将运行两个应用程序,因此Nginx会对它们进行负载平衡.

对于Rails和Puma,我有下一个.

Procfile用:

web: bundle exec puma -C config/puma.rb
Run Code Online (Sandbox Code Playgroud)

puma.rb:

threads 0,16
workers 1
port 3000
environment "production"
bind "unix:///path_to_my_app/tmp/sockets/puma.sock"
preload_app!
Run Code Online (Sandbox Code Playgroud)

"工头开始"启动应用程序

09:28:15 web.1  | started with pid 31442
09:28:16 web.1  | [31442] Puma starting in cluster mode...
09:28:16 web.1  | [31442] * Version 2.13.4 (ruby 2.2.1-p85), codename: A Midsummer Code's Dream
09:28:16 web.1  | [31442] * Min threads: 0, max threads: 16
09:28:16 web.1  | [31442] * Environment: production
09:28:16 web.1  | [31442] * Process workers: 1
09:28:16 web.1 …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails nginx puma

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

Rails 3.2 - 如何重定向到命名空间?

在我正在做的Rails 3.2应用程序中,我想创建一些特定于移动设备的视图(和动作处理).所以我创建了一个名为mobile的命名空间.

  namespace :mobile do
    resources :sessions
    resources :areas
  end  
Run Code Online (Sandbox Code Playgroud)

例如,如果用户使用移动设备进入登录页面,我想使用控制器和我为该命名空间创建的视图.

所以现在我有两种不同的登录方式:

new_mobile_session GET    /mobile/sessions/new(.:format)      mobile/sessions#new
Run Code Online (Sandbox Code Playgroud)

new_session GET    /sessions/new(.:format)             sessions#new
Run Code Online (Sandbox Code Playgroud)

但是当请求到来时,如果它来自移动设备,我怎么能在请求中添加"移动"命名空间?

即将/ sessions/new更改为/ mobile/sessions/new

我正在使用Rack :: MobileDetect,但我不知道如何使用redirect_to来达到这个目的.

config.middleware.use Rack::MobileDetect, :redirect_to => '/mobile'
Run Code Online (Sandbox Code Playgroud)

或者我应该使用不同的方法?

谢谢.

mobile routing ruby-on-rails

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

mongoid - 覆盖现有的字段警告

我刚开始使用 mongodb。我有一个通过 mongoid (4.0.0) 使用 mongodb 的 rails 4.0 应用程序有一个 Company 模型和一个 User 模型。所以用户belongs_to :company和公司has_many :users

当我启动控制台时,我会Company.first得到一个我创建的公司。当我第一次Company.first.users

WARN -- : Overwriting existing field 对于所有领域。

然后公司用户按预期。

当我第二次这样做时,没有警告,只有公司用户。

这是为什么?有什么问题吗?我在 Heroku 中有该应用程序,那里也发生了同样的情况。

谢谢。

更新 1

这是模型

class Company
    include Mongoid::Document
    include Mongoid::Timestamps

    field :name
    field :token

    has_many :users
    has_many :feedbacks
    has_many :main_categories
    has_many :departments

end
Run Code Online (Sandbox Code Playgroud)

更新 2

实际上这些警告只发生在 User 模型中

User.all
W, [2013-10-05T21:30:34.522867 #23442]  WARN -- : Overwriting existing field email in class User. …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails mongodb mongoid

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

从Rails 3.0升级到3.1然后升级到3.2 - 但保持3.0正常工作

我有3.0.5 rails应用程序,它们正在变老.我正计划升级到Rails 3.2

指南建议先从3.0到3.1再到3.2,这就是我要尝试的.

但是当我进行升级时,我希望保持项目完全正常工作,甚至可能会使用当前的3.0.5应用程序进行生产.

所以基本上我想并行进行升级而不会打扰真正的应用程序.

我将使用运行Snow Leopard的同一台机器.

我使用RVM进行Ruby管理.

有关如何设置此并行升级的任何建议吗?git分支实际上是一个选项,Git分支的概念会有这么多潜在的变化吗?

谢谢

ruby-on-rails upgrade

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

Ruby解码字符串

在Ruby中我怎样才能得到:

"b\x81rger"通过提供字符串"bürger".

我需要在Zebra打印机上打印特殊字符,我可以看到"b\x81rger"打印"bürger",但发送"bürger"不会打印正确的字符.

ruby string utf-8

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

标签 统计

ruby-on-rails ×7

mongodb ×2

mongoid ×2

c++ ×1

compare ×1

cookies ×1

facebook ×1

git ×1

heroku ×1

mobile ×1

nginx ×1

puma ×1

routing ×1

ruby ×1

string ×1

upgrade ×1

utf-8 ×1