• Почему сохраняется модель?

    @Renius
    дурак восторженный
    1.9.3p194 :023 > u.build_image unless u.image
      Image Load (0.4ms)  SELECT `images`.* FROM `images` WHERE `images`.`user_id` = 2 LIMIT 1
       (0.2ms)  BEGIN
       (0.2ms)  COMMIT
     => #<Image id: nil, desc: nil, user_id: 2, created_at: nil, updated_at: nil> 
    1.9.3p194 :024 > u.image
     => #<Image id: nil, desc: nil, user_id: 2, created_at: nil, updated_at: nil> 
    
    

    — Копипаста из api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html
    One-to-one associations

    Assigning an object to a has_one association automatically saves that object and the object being replaced (if there is one), in order to update their foreign keys — except if the parent object is unsaved (new_record? == true).

    If either of these saves fail (due to one of the objects being invalid), an ActiveRecord::RecordNotSaved exception is raised and the assignment is cancelled.

    If you wish to assign an object to a has_one association without saving it, use the build_association method (documented below). The object being replaced will still be saved to update its foreign key.
    Ответ написан
    Комментировать
  • Интернет-магазин на Ruby on rails. Нужен толковый совет?

    @Renius
    дурак восторженный
    1. Админка для Rails приложения есть в самом Rails — scaffold.
    2. Я против использования ЦМС в средах с высокой абстракцией, тем более когда речь идет о средах с настолько высоким уровнем вложенного функционала как Rails. Поясню.
    Вам нужен набор для рисования — ЦМС-стайл (в него входит, карандаши 65536 уветов, краски 16м цветов, фломастеры, аэрограф, кисти из 100500 видов шерсти животных, чертежная доска, студия по улице набережная д17, кв 33 с пассивным и активным освещение, заказанная выставка в Париже с открытой датой, 5 предоплаченных лотов в любом из аукционных домов Кристис, Сотбис, Бонхамс на выбор, оплаченные билеты на самолет.
    Но если вам нужно рисовать на стене соседнего дома, абстрактные картины баллончиком, то все это вам не нужно вообще.
    Не смотря на то что это все называется емким словом: «Искусство», вам этот ЦМС… ммм… не совсем подходит.
    Вам не нужны оплаченные билеты на самолет, вы больше времени потратите если будете их сдавать в авиакассу, чтобы вам не названивал оператор:«Вы чо ваще, собираетесь лететь, не?». Вам нужена пара гемов, подъемник и балончик с краской. Зачем ради этого городить ЦМС я не понимаю. Вам достаточно написать в Gemfile
    gem 'spray-paint'
    gem 'lift'
    
    

    и эти гемы есть, вы же не единственные кто пытается заниматься рисованием баллончиком с краской.
    Тем более что прикручивать spray-paint и lift к ЦМС всеравно придется. А проблемы есть, и в цмс и без нее, и размер их одинаков, и никуда эти проблемы не денутся.

    3. последний магазин который я использовал содержал:
    gem 'devise' # аутентификация
    gem 'haml-rails' # HAML вместо HTML
    gem 'sass-rails' #sass вместо css
    gem 'coffee-rails' #coffeescript вместо javascript
    gem 'postmark-rails' # рассылка почты
    gem 'russian' # потому что мы русские
    gem 'paperclip' # для обработки картинок
    gem 'delayed_job_active_record' # для отложенных задач
    gem 'delayed_paperclip'    , '2.4.5.2', :git => 'git://github.com/tommeier/delayed_paperclip', :branch => 'fix_312' # для отложенной обработки(ресайза) картинок
    gem 'rufus-scheduler' # типа крон, только внутри рабочего rails приложения
    gem 'twitter-bootstrap-rails' # чтобы сверстать все, включая админку
    gem 'aws-sdk' # для выгрузки картинок на S3
    gem 'quiet_assets' # чтобы логи не шумели
    

    админка генерируется через rails g scaffold…
    ничего лишнего, всего достаточно
    Ответ написан
    2 комментария
  • Ruby on Rails 3 validation model

    @Renius
    дурак восторженный
    средствами чистого Rails в рабочей системе

    with_options :if => «cause == 1» do |client|
    client.validates :prepay, :cost, :birthday, :phone1, :contract_date, :vin, :adress, :presence => 'true'
    client.validates_presence_of :id_series, :id_number, :id_dep
    client.validates_format_of :id_series, :id_number, :with => /[\d\s]/
    client.validates_presence_of :fio
    client.validates :car, :presence => true
    end

    with_options :if => 'cause == 5' do |client|
    client.validates_presence_of :fio, :manager, :trade_in_price, :trade_in_desc
    client.validates_associated :used_car

    end
    Ответ написан
    Комментировать
  • Javascript(Coffee) best practice: как мне сделать это лучше?

    @Renius Автор вопроса
    дурак восторженный
    Можете разьяснить?
    1. есть css
    .pull-right {float: right}
    почему span.pull-right и div.pull-right это плохо?
    2. Когда я говорю зеленое я могу подразумевать кнопку и бэкграунд
    Но когда я пишу кнопка.зеленая я знаю, и я не ошибусь в том, что работаю именно с кнопкой, я могу случайно написать.коричневая, но коричневой кнопки у меня нет, а.коричневая будет найден в доме. Работа с неожиданным объектом может привести к нежелательным батхертам.
    Специалист который будет, упоси бог, работать с моим кодом будет лучше ориентироватья в дереве если будет написано button.dropdown-toggle.
    Это вносит порядок.
    Ответ написан
    Комментировать
  • Как проверить необжатый кабель?

    @Renius
    дурак восторженный
    В нормах строительства СКС кабель оконечивается на розетках и на патч-панелях, и там и там есть RJ-45. Если кабель тянули в соотвествии с требованиями по укладке кабеля и кабель не дешевый китай — спокойно оконечивайте — обрывов быть не должно. В любом случае в розетку можно защить несколько раз, в коннектор только один, и это значительно дольше — лишняя, дорогая пустая работа. На 50км проложенного и спроектированного мною кабеля обрывы были только по вине строителей.
    Ответ написан
    2 комментария
  • Сколько стоит сайт?

    @Renius
    дурак восторженный
    такой сайт на Ruby on Rails делается за два часа
    включая
    + авторизацию с рассылкой почты
    + картинки на Amzon S3
    + админку для добавления товаров(scaffold)
    + готовность к моментальной выкатке на Heroku
    средний рор разработчик зарабатывает 10$ в час, 20$ на ваш проект

    — не вrлючены организационные расходы, типа «давайте обсудим, что конкретно вы хотите»
    можно добавить еще 10$
    — не влючены налоги

    получается до 2000 рублей
    Ответ написан
    3 комментария
  • А бывают ли вакансии Java Developer в Google Russia?

    @Renius
    дурак восторженный
    Везет тому, кто везет.
    Если вы так уверены в своих силах, чему я искренне завидую — отправьте резюме в гугл. За спрос, как мне кажется, не берут денег.
    Ответ написан
    Комментировать
  • Существуе ли (относительный) аналог Magento на Ruby/Ruby-on-Rails?

    @Renius
    дурак восторженный
    Мне импонирует ваше желание пересесть на ruby on rails, но
    1. Если проект готов и работает — оставайтесь на magento, нет никаких гарантий, что вы выйграете от использования ror, хотябы потому, что вам придется менять все сови привычки разработчика. Ror и пхп очень разные, они как инопланетный разум друг для друга.
    2. Уровень абстракции в ror выше чем в пхп:
    Ror-сообщество предложит вам массу вариантов для решения функциональных блоков. Например систему авторизации devise, acts_as_authenticated, warden т.д.
    Уровень абстракции warden выше чем у devise, например потмоу, что devise использует варден. В зависимости от сценария аутентификации, именно вам приедтся выбрать между warden и devise. Мне пришлось потратить несколько часов, чтобы научить девайс отвечать на аяксовые запросы, почти все было переписано до неузнаваемости, было бы лучше, часть предусмотренной девайсом логики безвозвратно утеряна. Ах, если бы я начал отталкиваться от warden…
    Однако, devise подключается к готовому проекту за считанные минуты.
    Почти под все платежные системы написаны простые библиотеки, которые, чаще всего не трогают ваше приложение пока вы не начинаете трогать библиотеки. Хотя памяти себе отъест.
    Сценарий для развертывание того или иного конкретного сервера всегда можно кастомизировать, существует ряд стредств позволяющих подгружать данные как в базу так и через логику.
    Мне хочется думать, что подавляющее большинство ror разработчиков не будет использовать crm, максимум возможно использовать сборки gem-ов. Crm — не rails way. Даже самый простой интернет магазин с двумя страничками проще написать с нуля, чем использовать crm. Поэтому и примеров с crm мало.
    Ответ написан
    Комментировать
  • Вы заменили рабочую тетрадь на планшет? Если да\нет, то почему?

    @Renius
    дурак восторженный
    Заменил на ipad №1
    И заметки всегда можно оставить, включая растровые. И скорость набора текста у меня адекватна несильно тарраторящему лектору. Мои лекции списывались и рассылались по почте за пиво.
    Лекции в последствии можно отдать лектору за автомат, т.к. он сможет сформировать на их основе методический материал.
    Ответ написан
    Комментировать