Articles of ruby 3

在nginx上部署乘客的多个Ruby on Rails应用程序

我有两个RoR应用程序,一个是使用ruby 2.0.0,名为dataentry3的gemset(rvm使用2.0.0@dataentry3),第二个应用程序使用ruby 1.9.3@v1。 我尝试按以下方式部署这些应用程序: rvm use ruby-2.0.0@dataentry3 cd dir/app1 gem install passenger passenger-install-nginx-module 编辑nginx.conf: http { passenger_root /usr/local/rvm/gems/ruby-2.0.0-p195@dataentry3/gems/passenger-4.0.3; server { listen 80; server_name localhost; location / { passenger_ruby /usr/local/rvm/wrappers/ruby-2.0.0-p195@dataentry3/ruby; root /var/www/adgally/dataentry4/public; passenger_enabled on; } } } 一切工作正常( http://my-ip )。 经过这些步骤之后,我尝试在地址http://my-ip/v1上部署第二个应用程序(新的phusion乘客允许运行多个ruby版本, 请参阅此处 ) 我做的步骤: rvm use ruby-1.9.3@v1 cd dir/app2 gem install passenger 编辑nginx.conf: http { passenger_root […]

什么可能导致重复logging由Rails创build?

我们注意到很多重复的logging正在我们的数据库的各种表格中创build,但是为什么会发生这种情况。 有趣的是,虽然logging是重复的(甚至到created_at邮票!),在我们的用户表上,每个logging上的密码salt和hash是不同的 – 这导致我相信Rails以某种方式运行事务/保存操作两次。 显然,我们不是在应用程序代码中调用save或多次create 。 数据库中保存的每条logging似乎都没有发生这种重复,而且我们似乎还无法推断出一种模式。 在User模型上也有validates_uniqueness_ofvalidation(虽然不是表格上唯一的键值;我们需要清理所有重复项目才能做到这一点) – 所以如果一个logging已经存在,Rails应该自行停止,如果这些请求同时触发,这是一个竞争条件。 我们目前在我们的应用程序服务器(当前是2个)上运行Rails 3.2.2后面的Passenger 3.0.11 / nginx,并且有一个中央的nginx web服务器,它将请求上传到应用程序服务器。 难道这个设置不知何故导致进程被复制或什么? 重要的是请求没有被locking到一个上游服务器上(例如,如果有一个用户请求包含静态内容的页面,比如图像,则可以使用一个或两个应用服务器)? (我觉得这是抓住吸pipe,但我想涵盖所有可能性) 还有什么可能导致这种情况发生? 更新:作为一个例子,今天创build了一个有重复logging的用户。 两者都有2012-03-28 16:48:11的created_at标记,除了hashed_password和salt之外的所有列都是相同的。 从请求日志中,我可以看到以下内容: 应用服务器1: Started POST "/en/apply/create_user" for 1.2.3.4 at 2012-03-28 12:47:19 -0400 [2012-03-28 12:47:19] INFO : Processing by ApplyController#create_user as HTML [2012-03-28 12:47:20] INFO : Rendered apply/new_user.html.erb within layouts/template (192.8ms) Started POST "/en/apply/create_user" […]

Webrick不会停止或重新启动

在此之前,我正在运行Linux Mint 13,只是切换到了Fedora 17.由于我已经做了切换,我不能再停止Webrick了。 我使用Jetbrains Rubymine,并启动服务器工作正常,但只要我打停止,或重新启动,它以某种方式detatches进程,我不能再使用该端口,直到我重新启动我的电脑。 我的第一个想法是,这对于Rubymine来说是一个问题,但是当我在控制台启动服务器时,它确实是一样的。 我按ctrl – c来停止它(似乎这样做),但一旦我去在该端口上再次启动服务器,它失败,因为使用重复的地址。

永恒的ruby过程

我试图杀死ruby进程,但这是不可能的。 我正在使用Ubuntu,我清理我的caching,我重新启动我的操作系统,然后ruby服务器正在运行。 但是,如果我运行pgrep -l ruby ,我得到一些pid我试图kill -9 $pid 。 但是当我再次运行pgrep -l ruby ,它永远显示了我想要杀死的相同进程…有人可以帮忙吗?

安装Rails不会启动

我已经在railcast.com上的310个railcast上安装了ruby。 现在我可以运行并创build一个新的导轨,并使用导轨运行它。 问题来了,我closuresterminal,并重新启动它,我得到以下错误 The program 'rails' is currently not installed. You can install it by typing: sudo apt-get install rails 这里ruby版本 ruby -v ruby 1.9.3p286 (2012-10-12 revision 37165) [i686-linux] 如果我做轨道 – vi得到以下 The program 'rails' is currently not installed. You can install it by typing: sudo apt-get install rails whereis rails rails: gem环境给了我这个 – RUBYGEMS […]

无法构build本机扩展

我切换到Linux薄荷大约两个星期前,并希望我的网站安装我的包,但我的terminal给我错误解决依赖………….使用耙11.2.2使用i18n 0.7。 0使用json 1.8.3使用minitest 5.9.0使用thread_safe 0.3.5使用构build器3.2.2使用erubis 2.7.0使用mini_portile2 2.1.0使用pkg-config 1.1.7使用机架1.6.4使用mime-types-data 3.2016 .0521使用arel 6.0.3使用本机扩展安装debug_inspector 0.0.2 Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /var/lib/gems/2.3.0/gems/debug_inspector-0.0.2/ext /debug_inspector /usr/bin/ruby2.3 -r ./siteconf20160830-6661-3kryhn.rb extconf.rb creating Makefile current directory: /var/lib/gems/2.3.0/gems/debug_inspector-0.0.2/ext/debug_inspector make "DESTDIR=" clean current directory: /var/lib/gems/2.3.0/gems/debug_inspector-0.0.2/ext/debug_inspector make "DESTDIR=" compiling debug_inspector.c In file included from /usr/include/ruby-2.3.0/ruby/ruby.h:36:0, from debug_inspector.c:12: /usr/include/ruby-2.3.0/ruby/defines.h:26:19: fatal error: stdio.h: […]

无法运行rails服务器

我开始学习Ruby on Rails,但现在已经停留在基本安装部分2天了。 我正在跟着一个教程,提到用rails server命令启动rails server 。 运行这个命令,我得到以下输出: $ rails server /home/niranjan/.rvm/gems/ruby-1.9.3-p194/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable) from /home/niranjan/.rvm/gems/ruby-1.9.3-p194/gems/execjs-1.4.0/lib/execjs.rb:5:in `<module:ExecJS>' from /home/niranjan/.rvm/gems/ruby-1.9.3-p194/gems/execjs-1.4.0/lib/execjs.rb:4:in `<top (required)>' from /home/niranjan/.rvm/gems/ruby-1.9.3-p194/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `require' from /home/niranjan/.rvm/gems/ruby-1.9.3-p194/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `<top (required)>' from /home/niranjan/.rvm/gems/ruby-1.9.3-p194/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `require' from /home/niranjan/.rvm/gems/ruby-1.9.3-p194/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `<top (required)>' from /home/niranjan/.rvm/gems/ruby-1.9.3-p194/gems/coffee-rails-3.2.2/lib/coffee-rails.rb:1:in `require' from /home/niranjan/.rvm/gems/ruby-1.9.3-p194/gems/coffee-rails-3.2.2/lib/coffee-rails.rb:1:in `<top […]

理想的Rails服务器

什么是理想的轨道服务器? 让我们假设它是一个VPS,比如Linode。 让我们假设任何一个网站都不会成为下一个推特,但是它们应该很好的扩展。 它还必须支持多个站点,并且所有站点都是rails 3.而且数据库必须位于同一台服务器上(现在)。 应该使用apache还是nginx? Ruby企业版或只是正常的Ruby? 理想的Linux发行版? MySQL,PostgreSQL或其他东西? 应该如何布置目录(把你的rails网站或其他地方放在哪里)? 部署选项? 还要别的吗?

在Windows上运行rails 3.1.1作为服务

我的目标是在本地Intranet可以访问的Windows机器上运行rails 3.1.1应用程序作为服务。 如果无法作为服务运行,运行我的rails应用程序的首选方法是什么? 意见/build议/意见欢迎!

ruby在轨道上找不到ffi

我经常看到这与mysql或mysql2工作时,我试图安装ffi但没有什么区别,请你帮忙解决这个问题 我试过gem install ffi , bundle install ffi我试过很多东西,就是不行! 什么时候做rake db:create我会看到的错误,我有最新的安装轨,如果我使用ruby安装程序 ,我会得到许多其他的错误,如:你需要开发工具包来build立这个gem,我安装工具包,仍然错误,所以我更喜欢坚持使用rails安装程序, 编辑 : 让我说我键入bundle install mysql我看到错误:请make sure that ffi installation succeeds before you continue或类似的东西,事情是,如果我不解决ffi error我会被卡在sqlite,因为我敢打赌mongodb,couchdb,mysql,mysql2,postgeres,不pipe…都需要ffi ,我不知道ffi是什么,但这似乎是非常重要的事情