filter :thing_id, as: :string, filters: ['eq']
do not forget to add the translation for active_admin.filters.predicates.eq
filter :thing_id, as: :string, filters: ['eq']
do not forget to add the translation for active_admin.filters.predicates.eq
getting this even though pcre devel headers are installed just fine?
* Checking for PCRE development headers...
Found: no
Try the solution that worked for me:
C_INCLUDE_PATH=/usr/local/include/ bundle exec passenger start
Suppose you want to collect your seed data from your fixtures…
past the following in you db/seeds.rb – file:
Dir.glob('test/fixtures/*.yml').each do |file|
ActiveRecord::Fixtures.create_fixtures("#{Rails.root}/test/fixtures", File.basename(file).split(".").first)
end
Works in my new Rails 3.2.10 environment using ruby 1.9.3
Suppose you have a server with multiple rubies, rvms, gemsets, etc…
Manually finding and patching all affected activerecord-gems would be pretty cumbersome.
The following script does the job for you:
#!/usr/bin/env ruby
SEARCH_DIR = "/" # by default search the entire filesystem
ACTIVERECORD_GEM_VERSIONS = ['2.3','3.0','3.1','3.2']
PATCHES = {
'2.3' => 'https://bugzilla.redhat.com/attachment.cgi?id=672189',
'3.0' => 'https://bugzilla.redhat.com/attachment.cgi?id=672190',
'3.1' => 'https://bugzilla.redhat.com/attachment.cgi?id=672191',
'3.2' => 'https://bugzilla.redhat.com/attachment.cgi?id=672192',
}
#1. Find all activerecord 2.3.x, 3.0.x, 3.1.x, 3.2.x gems on this machine
gem_paths = {}
puts "Searching for activerecord gems inside #{SEARCH_DIR} ... "
ACTIVERECORD_GEM_VERSIONS.each do |version|
gem_paths[version] = `find #{SEARCH_DIR} -path '*/gems/activerecord*' -name 'activerecord-#{version}.*' -type d`.split("\n")
puts "Found the following activerecord gems for version #{version}:"
puts gem_paths[version]
end
#2. Download the 4 patches here
puts "Downloading the patches ... "
ACTIVERECORD_GEM_VERSIONS.each do |version|
`wget -O patch-#{version}.patch --no-check-certificate #{PATCHES[version]}`
end
puts " ... done"
#3. Apply the patches
ACTIVERECORD_GEM_VERSIONS.each do |version|
gem_paths[version].each do |gem|
puts "--------------------------\nApplying patch for gem #{gem}"
puts `cd '#{gem}'; patch -tN -p2 < '#{File.expand_path(File.dirname(__FILE__))+"/patch-"+version+".patch"}'`
end
end
This script searches for affected activerecord gems, downloads the required patches and applies them individually.
You might need to run it as root, and it could take a while searching your entire filesystem...
If you know where all your gems are located change the
SEARCH_DIR = "/yougemrepository"
Tested on linux, freebsd
Are you using spreecommerce?
We too 🙂
We just completed a romanian translation for spree, it’s available in the “official” spree_i18n-gem.
Take a look at our translation we just commited:
https://github.com/spree/spree_i18n/commit/9467f8fb00454bd56b7941ded443e937583689fa
To use it in your rails app, simply:
1. Add the following to your Gemfile
gem 'spree_i18n', :git => 'git://github.com/spree/spree_i18n.git'
2. Insert the following line in you config/application.rb
module Spreee
class Application < Rails::Application
...
config.i18n.default_locale = :ro
end
end
3. bundle install - și gata 🙂
We have a situation here:
– a rails 2.3.5 app
– unicorn must be used as deploy solution
– rack gems 1.1.0 AND 1.0.1 installed
unicorn_rails requires rack 1.1.0
after that somewhere in the rails app rack 1.0.1 is required
So we get an error like this: “can’t activate rack (~> 1.0.1, runtime) for [], already activated rack-1.1.0”
Our solution:
– use bundler: http://gembundler.com/
– small modifications in the rails 2.3.x-files: http://gembundler.com/rails23.html
– configure and create the gem bundle
– start unicorn in the “bundler context” like this:
/usr/local/bin/bundle exec “/usr/local/bin/unicorn_rails -c config/unicorn.rb -E production”
/^((?!^TEST).)*$/
matches strings that DO NOT BEGIN with TEST
^((?!^(LOREM|IPSUM|LUGULUGU)).)*$
matches strings that
DO NOT BEGIN with LOREM
AND
DO NOT BEGIN with IPSUM
AND
DO NOT BEGIN with LUGULUGU
rdebug /usr/bin/rake db:migrate
Today I wanted to write a script which could be used to start/stop/restart unicorn for a given application – without root privileges, to get a status and a special action(monitor) which can be called periodically and will restart unicorn automatically in case something went wrong
I found this very usefull blogpost on the net http://rubynyc.wordpress.com/2009/12/24/unicorn-scriptspin/ and modified the script with 2 additional “methods”: status and monitor. (I know … the code I added is pretty primitive… but it works)
#!/usr/local/bin/ruby
UNICORN_RAILS='/usr/local/bin/unicorn_rails'
APP_PATH="#{ARGV[0]}"
class Runner
class << self
def start
system "cd #{APP_PATH}; #{UNICORN_RAILS} -c ./config/unicorn.rb -E production -D"
end
def reload
system "kill -s USR2 #{pid}"
end
def restart
stop
start
end
def graceful_stop
system "kill -s QUIT #{pid}"
end
def stop
system "kill #{pid}"
end
def pid
File.read "#{APP_PATH}/tmp/pids/unicorn.pid"
end
def status
begin
system "ps -o user,pid,ppid,command -ax | grep #{pid}"
rescue
puts 'not started'
end
end
#start if killed
def monitor
begin
#this throws an exception in 2 cases:
#1. if no unicorn-process for the current user exists
#2. if the pid functions fails(throws an error) due to non-existant unicorn.pid-file
throw 'processes killed manually' if (`ps -o user,pid,ppid,command -ax | grep #{pid}`).split("\n").size <= 2
rescue
puts 'restarting ... '
start
end
end
end
end
case ARGV[1]
when "start"
Runner.start
when "reload"
Runner.reload
when "restart"
Runner.restart
when "stop"
Runner.stop
when "status"
Runner.status
when "monitor"
Runner.monitor
else
STDERR.puts "usage ./unicorn_script.rb absolute_path_to_RAILS_ROOT [start|stop|restart|status|monitor]"
exit(1)
end
This script can be called from a cron every minute like this
* * * * * /path/to/this_script /path/to/rails_root/ monitor
It baiscally checks if the unicorn-processes exist(the master process and his spawned kids). If it does not detect at least one unicorn-process it will calls the start routine.