Skip to content

Instantly share code, notes, and snippets.



View GitHub Profile
DiveInto / add index.rb
Created Mar 26, 2012
how to add index using rails migration
View add index.rb
class AddIndexToFavourites < ActiveRecord::Migration
def self.up
add_index :favourites,[:user_id,:sell_info_id],:unique => true
def self.down
remove_index :favourites,[:user_id,:sell_info_id]
DiveInto / add field.rb
Created Mar 30, 2012
add field using rails generate
View add field.rb
rails generate migration add_password_to_users encrypted_password:string
class AddPasswordToUsers < ActiveRecord::Migration
def self.up
add_column :users, :encrypted_password, :string
def self.down
remove_column :users, :encrypted_password
DiveInto / flash.rb
Created Apr 4, 2012
how to use flash to notice
View flash.rb
flash[:notice] = "Item successfully saved as your favourite!"
#很奇怪,看官方文档,rails3里应该flash消息应该可以直接用notice(类似: redirect_to :action=>:XXX,:notice => "msg"),但我试了不行,不知为何,所以这儿还是用的老的style,记下备忘。
DiveInto / condition.rb
Created Apr 4, 2012
condition syntax,shows usage of ? :
View condition.rb
( == nil)? false:true
DiveInto / mongoOp.scala
Created Apr 6, 2012
mongo ops using scala/java
View scope.rb
class SellInfo < ActiveRecord::Base
belongs_to :book
belongs_to :user
scope :onsale,:conditions => ['deal_status is not "sold"']
scope :saled,:conditions => {:deal_status => "sold"}
View where.rb
@unsold = SellInfo.where("user_id = ? and deal_status != 'sold'",
@sold = SellInfo.where("user_id = ? and deal_status = 'sold'")
DiveInto / condition.rb
Created Apr 16, 2012
java lock and it's condition
View condition.rb
// Condition and ReentrantLock
class BoundedBuffer {
final Lock lock = new ReentrantLock();
final Condition notFull = lock.newCondition();
final Condition notEmpty = lock.newCondition();
final Object[] items = new Object[100];
int putptr, takeptr, count;
public void put(Object x) throws InterruptedException {
View ruby.rb
#== Never use for, unless you know exactly why. Most of the time iterators should be used instead. for is implemented in terms of each (so you're adding a level of indirection), but with a twist - for doesn't introduce a new scope (unlike each) and variables defined in its block will be visible outside it.
arr = [1, 2, 3]
# bad
for elem in arr do
puts elem
# good
arr.each { |elem| puts elem }
DiveInto /
Created Jun 19, 2012
install sun-java on ubuntu
$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:sun-java-community-team/sun-java6
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
$ sudo apt-get remove openjdk-6-jdk --purge -y
$ sudo apt-get autoremove
sudo update-java-alternatives -s java-6-sun
You can’t perform that action at this time.