Never been to TextSnippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world (or not, you can keep them private!)

About this user

« Newer Snippets
Older Snippets »
5 total  XML / RSS feed 

scope in activerecord


def mine 
   {:find=>{:conditions=>["user_id=?",1]}, :create=>{:user_id=>1}} 

def index 

def new 
   secret = Secret.create(:name=>rand(10000)) 
   if (secret.new_record?) 
     flash[:notice] = "Could not create Secret" 
   redirect_to :action=>"index" 

server optimization

- Why not use mod_negotiation for compression? That will allow you to use pre-compressed files and avoid per-request on-the-fly compression. You can automate this and use the most expensive/effective compression level (gzip -9 foo).

- Separate static content, dynamic content, and database onto separate machines.

- Serve static content from a machine with lots of RAM to allow OS- or server-level file caching. Check out a built-for-speed server like lighttpd.

- Compile a stripped-down version of your Web server using only the modules you need.

- For frequently-called, brain-dead utility work like “Bringing it all together”, avoid PHP like the plague. Write it in C using FastCGI.

- For big PHP, use the Zend Optimizer. Check out the PHP5 function benchmarks at

- All the usual stuff: don’t follow symlinks, don’t use .htaccess files, don’t resolve client hostnames (move the logs to another machine and batch it later), etc..

- If you use SSL, buy a dedicated hardware SSL device that offloads crypto processing from the servers to it.

- When linking to directories, add the trailing slash. i.e. rather than This avoids an HTTP redirect, which results in an unncessary HTTP transaction.

ruby stored procedures

There are alot of reasons to use stored procedures. One of the most compelling reasons is that a system has already been built with stored procedures and interfacing with it cannot be by raw SQL. This situation is mainly caused by DBA’s whose job it is to control the flow of information into and out of the database. In “enterprise” situations this is the norm.

  @connection ="db_user", "db_password", "db_name")

  plsql = @connection.parse("BEGIN P_MYPROCEDURE.my_method(:out); END;")
  plsql.bind_param(':out', OCI8::Cursor) 

  cursor = plsql[':out']

  x = ''
  while r = cursor.fetch()
    x = x + r.join(', ') + '
' end @out = x @connection.logout

This code assumes you are using Rails 1.1 as an engine and that you have setup the database.yml for Oracle (10g in this post). The OCI8 object instantiated on the first line is in the OCI8 library which is loaded by Rails, specified in database.yml.

Interfacing with Oracle and its stored procedures pretty much requires some knowledge about Oracle which has some very specific concepts that something like MySQL does not.

First, to pass local variables to the stored procedure’s “in” and “out” variables, you must explicitly “bind” them.

Second is the notion of “cursor”.

Author: hksintl on

Фильтр на обновление только разрешенных полей

%w(name email address).each { |f| @person[f] = params[:person][f] }

Перегрузка ошибок

Перегрузка ошибок

def error_messages_for(object_name, options = {})
        options = options.symbolize_keys
        object = instance_variable_get("@#{object_name}")
        if object && !object.errors.empty?
              options[:header_tag] || "h2",
              "Из-за #{object.errors.count} #{object.errors.count.items("ошибки", "ошибок", "ошибок")}  #{object_name.ru_name} не будет сохранена"
            ) +
            content_tag("p", "Следующие поля заполнены неверно:") +
            content_tag("ul", object.errors.full_messages.collect { |msg| content_tag("li", msg) }),
            "id" => options[:id] || "errorExplanation", "class" => options[:class] || "errorExplanation"
« Newer Snippets
Older Snippets »
5 total  XML / RSS feed