← All posts tagged Rails

wyldrodney
SQL Rails public Читаешь так книгу по SQL: всё прекрасно, блокировки, ограничения, никаких дублей.
Пишешь код в ORM: А ЧТО ЕСЛИ КТО-ТО заполнил анкету, пока ты ПОДГРУЖАЛ ДАННЕ ДЛЯ НЕЁ?
wyldrodney
Rails Давно не писал, но чо уж. @dream-x дал идиотичнейшнее задание, которое сам не представляет как выполнить. В итоге я сделал небольшой кусочек шедевра.

Стейт-машина + rails_admin. Задача: каждый заказ проходит несколько стадий при полоижительных условиях или переходит к иным при отрицательных условиях. В админке (упрощающей жизнь, как некоторые считают). И для облечения жизни в админку можно писать значения полей (кортежей) только вручную. Ня? Соблюдаем целстность процесса и ни отходим ни на шаг. С ручным вводом состояний заказа.

Решено было добавить выпадающий список с эвентами стейт-машины и завести для него промежуточное поле.

(Эвенты позволяют отмечать заказ как оплаченный в нужные нам моменты: когда счёт уже был выставлен, а не когда заказ только создан и счёта, разумеется, ещё нет.)

Эвенты берутся из списка доступных для текущего состояния. Например, для состояния "ожидаем оплаты" есть два события: оплачено и отмена. Если в списке выбрать "оплачено", то мы переходим к сохранению экземпляра модели. И вот на этом этапе самое кливое:

1) если доп. поле содержит событие
2) сохраняем событие, зануляем жоп. поле
3) делаем self.send("#{событие}!")

Две строчки на интеграцию, круто, а!?)
wyldrodney
Rails idiots Лень убивает в человеке его самого. Средняя стоимость часа работы рубиста — 700 рублей.
"Срань какая, почему б не застрелиться?", — подумал я, и не застрелился.
wyldrodney
coding Rails Есть одна пошлая мыслишка... А именно: Rails-программер на написание кода тратит 1/4 времени, всё остальное — это оптимизация процесса написания этого кода.
wyldrodney
! job Rails Нужен рубист в Питере на вакансию: hh.ru
З/п около средней по городу, знать не знаю что придётс делать, но собеседование пройти просто, я думаю.
wyldrodney
SQL Rails Пусть нужно хранить список городов и стран, в которых они находятся.

В Rails это обычно делается как:
ModelTown: id, name, country_id + CountryModel: id, name.

Но в книге по БД рекомендуется выполнять это как:
Town: id, name, country_name.

Я согласен с доводами, приведёнными в книге. Кроме того, это быстрее. А верно ли будет использовать такую схему в Rails?
wyldrodney
job Rails Забрался в прошлый проект. Добавляю функционал. Смотрю вьюху:
<% Keyword.from("`keywords`, `words`").where("`site_id` = '#{@site.id}' AND `words`.`id` = `keywords`.`word_id`").order("`words`.`name`").each do |keyword| %>
Кто, блядь, это писал!? Ёпт...
wyldrodney
books Rspec Rails Ня! Следующая неделя будет неделю Rails Way, ибо нехуй говнокод плодить. Начну со злосчастного RSpec и весь код покрою тестами чтобы в следующий раз не делать вид что тесты — это сложно, а потом потом и вообще.