我一直试图在我的Mac上安装rails.我有OS X 10.6.8,我已经确认我有Ruby,版本1.8.7
我跑了sudo gem update并sudo gem update --system获得了该软件的最新版本.
但是,当我运行时,sudo gem install rails我收到此错误:
ERROR: Error installing rails:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h
Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/json-1.6.3 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/json-1.6.3/ext/json/ext/parser/gem_make.out
Run Code Online (Sandbox Code Playgroud) 示例我有:
@test = Pakke.find([[4], [5]])
Run Code Online (Sandbox Code Playgroud)
在我的Pakke表中,我有一个名为的列 prismd
如何将prismd
@test 的列的两个值相加?
我正在尝试调试运行时我的应用程序试图连接到我的数据库的原因rake assets:precompile --trace.
我可能在堆栈跟踪中遗漏了一些东西......有人看到相关的线路吗?
DEPRECATION WARNING: The InstanceMethods module inside ActiveSupport::Concern will be no longer included automatically. Please define instance methods directly in ActionController::Base instead. (called from <top (required)> at /Users/Kyle/Desktop/skateparks-web/config/application.rb:4)
** Invoke assets:precompile (first_time)
** Execute assets:precompile
/Users/Kyle/.rvm/rubies/ruby-1.9.2-p290/bin/ruby /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets --trace
DEPRECATION WARNING: The InstanceMethods module inside ActiveSupport::Concern will be no longer included automatically. Please define instance methods directly in ActionController::Base instead. (called from <top (required)> at /Users/Kyle/Desktop/skateparks-web/config/application.rb:4)
** Invoke assets:precompile:all (first_time)
** Execute assets:precompile:all …Run Code Online (Sandbox Code Playgroud) 我正在研究使用Rake构建工具来自动运行单元测试.我在网上搜索过,但所有的例子都是使用rails.我通常只是编写小型命令行程序或简单的Sinatra应用程序.
所以我提出了以下(可能是坏的)解决方案,它只是模仿我在命令行上会做的事情:(我只是以一个单元测试为例.)
desc 'Run unit tests'
task :test do
sh 'ruby -I lib test/test_entry.rb'
end
task :default => :test
Run Code Online (Sandbox Code Playgroud)
它有效,但我不禁想到必须有更好的方法,只是写作require 'test/test_entry.rb'不起作用.我遇到require问题,Ruby无法找到lib所有文件所在的目录.
使用Simple_form 2.0.2
使用HAML的简单表单代码:
= f.input :remember_me, as: :boolean, inline_label: 'Remember me'
Run Code Online (Sandbox Code Playgroud)
但它呈现了这个:
<div class="control-group boolean optional">
<label class="boolean optional control-label" for="admin_remember_me">Remember me</label>
<div class="controls">
<input name="admin[remember_me]" type="hidden" value="0" />
<label class="checkbox"><input class="boolean optional" id="admin_remember_me" name="admin[remember_me]" type="checkbox" value="1" />Remember me</label>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
如何删除渲染的第一个标签,以便我只有内联标签?
试图在Mountain Lion上安装一个宝石,但找不到gcc-4.2:
kamil$ gem install posix-spawn -v '0.3.6'
Building native extensions. This could take a while...
ERROR: Error installing posix-spawn:
ERROR: Failed to build gem native extension.
/Users/kamil/.rbenv/versions/1.9.3-p0/bin/ruby extconf.rb
creating Makefile
make
compiling posix-spawn.c
make: gcc-4.2: No such file or directory
make: *** [posix-spawn.o] Error 1
Run Code Online (Sandbox Code Playgroud) 我用Homebrew安装了Ruby:
brew install ruby
Run Code Online (Sandbox Code Playgroud)
根据"警告",它说:
注意:默认情况下,gem安装的二进制文件将放入:
/usr/local/Cellar/ruby/1.9.3-p194/bin您可能希望将其添加到PATH中.
这是什么意思,我怎样才能将它添加到我的"路径"中?假设它与bash_profile有关,但对此却是新的.
我使用redis作为读缓存.我创建了一个初始化器
配置/初始化/ redis.rb
$redis = Redis.new(:host => ENV["REDIS_HOST"], :port => ENV["REDIS_PORT"])
Run Code Online (Sandbox Code Playgroud)
我在unicorn.rb中使用this global来创建新的连接,无论何时创建新的worker.
before_fork do |server, worker|
# clear redis connection
$redis.quit unless $redis.blank?
end
# Give each child process its own Redis connection
after_fork do |server, worker|
$redis = Redis.new(:host => ENV["REDIS_HOST"], :port => ENV["REDIS_PORT"])
end
Run Code Online (Sandbox Code Playgroud)
每当我需要访问我的redis服务器时,我也在使用这个全局变量.但我不习惯使用这个全局变量.有没有比使用全局变量更好的选择?
主要编辑:自从最初发现这个问题以来,我已将其削减到下面.我认为现在对这个问题的描述略微准确.因此,对OP的评论可能不完全相关.
编辑在rails/puma项目中发布的轻微修改版本:https://github.com/rails/rails/issues/21209,https://github.com/puma/puma/issues/758
编辑现在转载OS X和Rainbows
简介: 当使用Puma并运行长时间运行的连接时,我一直收到与跨越线程的ActiveRecord连接相关的错误.这表现在消息 message type 0x## arrived from server while idle 和锁定(崩溃)服务器中.
设置:
mysqld 5.6.25-0ubuntu0.15.04.1)2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]/ Rubiniusrbx-2.5.84.2.3,4.2.1)2.12.2,2.11)pg-0.18.2)/ mysql2请注意,并非所有上述版本的组合都已尝试过.首先列出的版本是我目前正在测试的版本.
rails new issue-testget 'events' => 'streaming#events'streaming_controller.rbpool: 2但看到不同的池大小)码:
class StreamingController < ApplicationController
include …Run Code Online (Sandbox Code Playgroud) ruby multithreading connection-pooling ruby-on-rails actioncontroller
transient doFactoryBot工厂的目的是什么?
我见过很多以下面的东西开头的工厂.
factory :car do
owner nil
other_attribute nil
end
...
Run Code Online (Sandbox Code Playgroud)
我在这个博客上找到了一些信息:http://blog.thefrontiergroup.com.au/2014/12/using-factory-easily-create-complex-data-sets-rails/
但我仍然不完全明白如何以及为什么这样做.我对FactoryBot的体验很小.
任何有使用FactoryBot经验的人都可以分享一些见解吗?