Rails поддерживает «Single table inheritance» (не знаю как можно перевести на русский). Вполне можно создать 2 модели для одной табилицы и обрабатывать подобные ситуации именно так.
Неудачно Ctrl нажал, всю красоту сломал. Хотел сказать, чтобы пользоваться вкусностями Ruby не нужно полностью знать все тонкости… Вы ведь не знаете как растет вкусное яблоко с биологической точки зрения? Тут ведь тоже самое.
PHP
class Post extends CActiveRecord
{
public function scopes()
{
return array(
'published' => array('condition' => 'published=1'),
);
}
}
Post::model()->published()->findAll();
Ruby
class Post < ActiveRecord::Base
named_scope :published, :conditions => { :published => 1 }
end
Post.published.all
— огромное количество гемов (готовых модулей, можно так сказать)
— очень краткий синтаксис
— меньше конкуренция за работу, больше $
— очень мало людей выбрали Ruby первым языком, поэтому можно нормально читать форумы Ruby-программистов
— очень быстро все развивается и создается
Ещё куча-куча всего вкусного, уже начинаю смотреть косо на PHP.
Пример с Application.closure.apply — это практическое применение, которое задокументированно в проекте.
code.jquery.com/jquery-1.7.2.js
А вообще такой код используется в jQuery именно для того, чтобы нельзя было переопределить undefined и сломать код.
+ такой код вообще не меняет стандартное поведение, это лишь страховка.
Всегда писал так, уверен, что это 100% правильно. Может меня кто-то поправить?
Ruby не просто компактней, а короче в 2 раза.
PHP
Ruby
class Post extends CActiveRecord
{
public function scopes()
{
return array(
'published' => array('condition' => 'published=1'),
);
}
}
Post::model()->published()->findAll();
— очень краткий синтаксис
— меньше конкуренция за работу, больше $
— очень мало людей выбрали Ruby первым языком, поэтому можно нормально читать форумы Ruby-программистов
— очень быстро все развивается и создается
Ещё куча-куча всего вкусного, уже начинаю смотреть косо на PHP.