Prepare for Rails 2.0: Deprecations
Едно от най-важните неща при промяната на нови версии на framework-ове от типа на rails, а и на програмните езици като цяло, са т.нар. deprecations. “Остаряването” на определени методи обикновено се диктува от появата на заместители с по-изчистен интерфейс, или на изцяло пренаписани такива, и поне за мен винаги е било знак за усъвършенстване.
За жалост, понякога изхвърлянето на методи може да доведе до сериозни главоболия, имам доста неприятни спомени, свързани с половинчати изпълнения в Java, затова по принцип deprecation-ите са едно от първите неща, които проверявам още при анонсирането на нова версия.
Промените в Rails не са кой знае колко значителни, а някои deprecation-и вече бяха намерили място в 1.2 сериите. Тук можете да видите списък с остарелите методи, както и препоръки с какво как да ги заместите:
Action Pack
- components
use partials and helper methods instead@params,@session,@flash,@request,@cookies,@headers,@response
Use theparams,session,flash, etc methods instead of working with the instance variables directly.url_for(:symbol, *args),redirect_to(:symbol, *args)
use named routes insteadrender_text,render_template, etc.
Use e.g.render :text => …,render :template => …, etc.redirect_to_path,redirect_to_url
Useredirect_to.post_format,formatted_post?,xml_post?,yaml_post?
Userespond_toorrequest.formatstart_form_tagandend_form_tag
Useform_tagwith a block.update_element_function
use RJSlink_to_image,link_image_tohelper methods
uselink_to(image_tag(..), url)human_sizehelper alias
usenumber_to_human_sizehelper methodActive Record
find_first,find_all
Usefind :firstandfind :allpush_with_attributes
Usehas_many :throughfor rich many-to-many associations*association*_count
Use*association*.countinsteadRailties
- Non-namespaced rake tasks like rake migrate
Use rakedb:migrate
Неприятното в случая е, че ще трябва да преровите всички файлове за да се уверите, че не съдържат някой от методите по-горе. Вярно, grep е прекрасен инструмент, но и ruby не е за подценяване. Ето един rake task, който преглежда кода за deprecated методи:
Download deprecated.rake (1,9 KB)
Запишете го в директория lib/tasks на проекта и го стартирайте с:
$ rake deprecated
Маркери: rails, tips
За тази статия
В момента четете "Prepare for Rails 2.0: Deprecations", статия в stinger's thoughts
Отпечатване на статията
- Публикувана на:
- 03.10.2007 в 12:41
- Категория:
- Web Development
- Изпращане:
- Изпрати чрез email
Категории
- Books (10)
- Linux/UNIX (66)
- Movies (32)
- Music (70)
- Web Development (57)
- Други (180)






















IE8 Webslice
RSS с публикации
Няма коментари
RSS с коментaрите