Never been to ShareSnippets before?

ShareSnippets е публично хранилище за програмен код. Лесно можете да съберете собствена колекция от отрязъци от код, да ги систематизирате с етикети, ключови думи, и да ги споделите (или ако не искате, да ги запазите за себе си!)

Профил на jivko


Уеб Адрес: http://blog.jivkobg.com
Добавени отрязъци: 29
Проекти:  3
Линкове:  2

« По-нови Отрязъци
По-стари Отрязъци »
28 общо  XML / RSS  

Ubuntu change the default editor

Ubuntu change the default editor

update-alternatives --config editor

Коя година сме ?

Забравяте да променяте годината в подписа(bottom) на сайта си или по лошо в сайта на клиент !

Helper code:
  def current_year
      Time.now.strftime('%Y')
  end


View:
"...Всички права запазени <%= current_year %> ...."

Български участник в европейско SEO състезание

Български участник в европейско SEO състезание.

Сайта: seocontest2008

Състезател: oggin

Имате инсталиран Rails 2.0.x, а искате да създадете проект с 1.2.6

Имате инсталиран Rails 2.0.x, а искате да създадете проект с 1.2.6 - Преди всичко трябва да имате инсталиран rails 1.2.6 gem след което:

rails _1.2.6_ името_на_проекта

Не броими имена - Ruby on Rails - Rest

Не броими имена и Rest Rails - Например: News

 map.resources :news -> map.resources :news, :singular => :news_instance

 news_path() /news
 new_news_instance_path() /news/new
 news_instance_path(1) /news/1
 edit_news_instance_path(1) /news/1;edit

 #edit
 <% form_for(@news, :url=>  news_instance_path(@news)) do |f| %>

 ......

 if @news.save
   format.html { redirect_to news_instance_path(@news) }
 ......

Импорт на CSV файл с ruby

Импорт на CSV файл с ruby

Пример с FasterCSV
sudo gem install fastercsv

require 'rubygems'
require 'fastercsv' 

FasterCSV.foreach('./imAreas.csv') do |row|
	e1 = row[0]
	e2 = row[2]
	e3 = row[3]
        .........
end

robots.txt sitemap location

Покажете на търсачките къде се намира вашият sitemap.xml като добавите следното в robots.txt

Sitemap: http://www.yoursite.com/sitemap.xml

Инсталация на TinyMCE в RoR приложение

Инсталация на TinyMCE в RoR приложение:

1. Плъгин
cd vendor/plugins
 svn export https://secure.near-time.com/svn/plugins/trunk/tiny_mce

2. Инсталация в приложението
  rake tiny_mce:scripts:install

3. Използване:
Във вашия layout добавете:
(Препоръката е да се добави преди останалите javascipt)
	<%= javascript_include_tiny_mce_if_used %>
	<%= tiny_mce if using_tiny_mce? %>

В използваният контролер:
class Admin::BaseController < ApplicationController
  layout 'admin'
  uses_tiny_mce(:options => {:theme => 'advanced',
                             :browsers => %w{msie gecko},
                             :theme_advanced_toolbar_location => "top",
                             :theme_advanced_toolbar_align => "left",
                             :theme_advanced_resizing => true,
                             :theme_advanced_resize_horizontal => false,
                             :paste_auto_cleanup_on_paste => true,
                             :theme_advanced_buttons1 => %w{formatselect fontselect fontsizeselect bold italic underline strikethrough separator justifyleft justifycenter justifyright indent outdent separator bullist numlist forecolor backcolor separator link unlink image undo redo},
                             :theme_advanced_buttons2 => [],
                             :theme_advanced_buttons3 => [],
                             :plugins => %w{contextmenu paste}},
                :only => [:new, :edit, :show, :index])  
.....

Пренасочване на директория към домейн с помощта на .htaccess

Redirect 301 /example_dir http://www.domain_example.com

Mac OS X 10.4.10 DBD::mysql инсталация

Инсталацията:

sudo perl -MCPAN -e 'install DBD::mysql'


Грешката:

dbdimp.c: In function 'mysql_dr_connect':
dbdimp.c:1677: error: 'ulong' undeclared (first use in this function)
dbdimp.c:1677: error: (Each undeclared identifier is reported only once
dbdimp.c:1677: error: for each function it appears in.)
dbdimp.c:1677: error: parse error before numeric constant
make: *** [dbdimp.o] Error 1


Решението:
Редактирайте ‘mysql_com.h’ в ‘/usr/local/mysql/includes’ и добавете:

typedef unsigned long ulong;

Rails migration - типове данни

Rails migration - типове данни

:integer
:float
:datetime
:date
:timestamp
:time
:text
:string
:binary
:boolean

Rails - link_to Back

link_to "Back" ....

Вариант 1:
<%= link_to_unless request.env['HTTP_REFERER'].nil?, 'back', request.env['HTTP_REFERER']%>


Вариант 2:
<%= link_to 'back', request.env['HTTP_REFERER'] unless request.env['HTTP_REFERER'].nil?%>

Rails - Gettext - undefined method `untranslate_all?

След изпълнение на "rake updatepo" получавате следната грешка: undefined method `untranslate_all?
Проблема се появява след ъпдейт на ruby gem - gettext до версия 1.10.0

Решението:

requiregettext/rails’
class ApplicationController < ActionController::Base


Преместете в config/environment.rb:
requiregettext/rails’


Проблема идва от това, че в новата версия на gettext gem е променено следното в lib/gettext/parser/active_record.rb:
....
     begin
              ENV["RAILS_ENV"] = @config[:db_mode]
              requireconfig/boot.rb’
              requireconfig/environment.rb’
#             require ‘app/controllers/application.rb’
....


Как да използваме Gettext за превод на ruby on rails сайт/приложение можем да прочетем тук:
http://manuals.rubyonrails.com/read/chapter/105

Dreamhost инсталация на собствен gem...

Инсталация на rubygems в директорията на Вашият потребител:


Следвайте стъпките описани тук:
http://wiki.dreamhost.com/RubyGems


Ако след преминаване по описаните стъпки имате проблем от сорта на:

gem install -y radiant
Bulk updating Gem source index for: http://gems.rubyforge.org
Killed


Направете следното(USERNAME - потребителя с който се логвате в Вашият акаунт през ssh...):
rm -rf /home/USERNAME/.gems/source_cache

Dreamhost - Ruby on Rails - Error 500

Dreamhost - Ruby on Rails - хостинг на сайт/приложение и грешка - Error 500

RailsFCGIHandler.process! nil, 10

class RailsFCGIHandler
  private
    def frao_handler(signal)
      dispatcher_log :info, "asked to terminate immediately"
      dispatcher_log :info, "frao handler working its magic!"
      restart_handler(signal)
    end
    alias_method :exit_now_handler, :frao_handler
end

Заместване на string във файлове....

Заместване на string в файлове:

perl -pi -w -e 's/search/replace/g;' *.php

 - изпълнява съответният код
-i - редактира на място
-w - съобщения при записване
-p - цикъл (loop)


Dreamhost - хостинг на rails сайт приложение - dispatch.fcgi

Dreamhost хостинг на rails приложение сайт. dispatch.fcgi

#!/usr/bin/env ruby
require File.dirname(__FILE__) + "/../config/environment"
require 'fcgi_handler'

class RailsFCGIHandler
 private
    def frao_handler(signal)
         dispatcher_log :info, "asked to terminate immediately"
              dispatcher_log :info, "frao handler working its magic!"
               restart_handler(signal)
        end
        alias_method :exit_now_handler, :frao_handler
  end

RailsFCGIHandler.process!

Руби сортиране....

products = Array.new

products << {'name'=>'one', 'price'=>100}
products << {'name'=>'two', 'price'=>200}
products << {'name'=>'three', 'price'=>50}

products.sort_by { |p| p['name'] }

products.sort_by { |p| p['price'] }


За повече инфо:

http://www.ruby-doc.org/core/classes/Enumerable.html

Attachment_FU: Използване на един модел за качване на снимки от няколко модела

Използване на един модел за качване на снимки от няколко модела. Така наречената "polymorphic" асоциация.

Таблица за attachment_fu модел:
    create_table :images do |t|
      t.column :parent_id,    :integer
      t.column :content_type, :string 
      t.column :filename,     :string
      t.column :thumbnail,    :string
      t.column :size,         :integer
      t.column :width,        :integer
      t.column :height,       :integer 
      t.column :user_id,    :integer                  
      t.column :asset_id, :integer                  
      t.column :asset_type, :string      
    end


Магията започва тук :

      t.column :asset_id, :integer                  
      t.column :asset_type, :string


Модел за Attachment_fu: Image

class Image < ActiveRecord::Base
  belongs_to :asset, :polymorphic => true, :dependent => :destroy
.....


Искаме да добавим снимка към друг модел:

class Link < ActiveRecord::Base
  has_one :image, :class_name => 'Image', :as => :asset, :dependent => :destroy
.... 


Link контролер:

class LinksController < ApplicationController

  def new
    @link = Link.new
  end

  def create
    @link = Link.new(params[:link])
    if !params[:image][:uploaded_data].blank?
      @image = Image.new(params[:image])
      @link.image = @image
    end
    if @link.save
      flash[:notice] = 'Линка е добавен успешно !'
      redirect_to :action => 'list'
    else
      render :action => 'new'
    end
  end

  def edit
    @link = Link.find(params[:id])
    @image = @link.image
  end

  def update
    @link = Link.find(params[:id])
    @link.attributes = params[:link]
    if !params[:image][:uploaded_data].blank?
      @image = Image.new(params[:image])
      @link.image = @image      
    end
    if @link.update_attributes(params[:link])
      flash[:notice] = 'Линка беше променен !'
      redirect_to :action => 'list'
    else
      render :action => 'edit'
    end
  end

Attachment_FU: Валидация - Част II

Създаване на собствена валидация.

  has_attachment :content_type => :image, 
                   :storage => :file_system, 
                   :max_size => 200.kilobytes,
                   :resize_to => '320x240>',
                   :thumbnails => { :thumb => '100x100>' }


   def validate
     errors.add("empty", "Изберете снимка на проекта") unless self.filename
     unless self.filename == nil

       # Images should only be GIF, JPEG, or PNG
       [:content_type].each do |attr_name|
         enum = attachment_options[attr_name]
         unless enum.nil? || enum.include?(send(attr_name))
           errors.add("type","Файла който сте избрал е различен от JPEG, PNG или GIF")
         end
       end

       # Images should be less than 5 MB
       [:size].each do |attr_name|
         enum = attachment_options[attr_name]
         unless enum.nil? || enum.include?(send(attr_name))
           errors.add("size", "Файла който сте избрал е с големина по-голяма от максималната 200 KB")
         end
       end
     end
   end

Някъде в някоя форма :)

<%= error_message_on 'image', 'empty' %>
<%= error_message_on 'image', 'size' %>
<%= error_message_on 'image', 'type' %>

« По-нови Отрязъци
По-стари Отрязъци »
28 общо  XML / RSS