Skip to content

Instantly share code, notes, and snippets.

View aya-soft's full-sized avatar
🎯
Focusing

Anton Ageev aya-soft

🎯
Focusing
  • iTechArt
  • Minsk, Belarus
View GitHub Profile

Keybase proof

I hereby claim:

  • I am aya-soft on github.
  • I am ayasoft (https://keybase.io/ayasoft) on keybase.
  • I have a public key ASBhgc1_HmmDBdnLDGID4t_gCjb_N6S6kxRiD44rRDKB0go

To claim this, I am signing this object:

@aya-soft
aya-soft / searches_controller.rb
Created December 14, 2016 12:23
Ошибку в условии сам найдешь?
redirect_to catalog_path and return if not params[:vendor].present? or params[:search_string].present?
@aya-soft
aya-soft / all_spares_controller.rb
Created December 14, 2016 12:08
Для генерации XML в rails используется builder https://richonrails.com/articles/outputting-xml-using-ruby-on-rails
def spares_for_yandex
@spares = Spare.available_for_purchase
end
@aya-soft
aya-soft / catalog_meta_tag_generator.rb
Created December 14, 2016 12:03
Спагетти код, надо его обобщить
if catalog_state.level?(:catalog)
"КАТАЛОГ ЗАПЧАСТЕЙ ДЛЯ АМЕРИКАНСКИХ АВТОМОБИЛЕЙ"
elsif catalog_state.level?(:brand)
"КАТАЛОГ ЗАПЧАСТЕЙ ДЛЯ АВТОМОБИЛЕЙ #{breadcrumbs[1].upcase} «#{(I18n.t breadcrumbs[1].downcase).upcase}»" # "каталог" в расчет не берем
elsif catalog_state.level?(:model)
"ЗАПЧАСТИ ДЛЯ #{breadcrumbs[1].upcase} #{breadcrumbs[2].upcase}"
elsif catalog_state.level?(:year)
"ЗАПЧАСТИ ДЛЯ #{breadcrumbs[1].upcase} #{breadcrumbs[2].upcase} #{breadcrumbs[3].upcase} ГОДА"
elsif catalog_state.level?(:engine)
"ЗАПЧАСТИ ДЛЯ #{breadcrumbs[1].upcase} #{breadcrumbs[2].upcase} #{breadcrumbs[3].upcase} #{breadcrumbs[4].upcase}"
@aya-soft
aya-soft / catalog_controller.rb
Last active December 27, 2016 15:49
Отличный класс, но создается три раза зачем-то. Доделай initialize(catalog_state) и вызывай эти три метода на одном экземпляре.
@page_title = CatalogMetaTagGenerator.new.generate_title(@catalog_state)
@page_description = CatalogMetaTagGenerator.new.generate_description(@catalog_state)
@page_keywords = CatalogMetaTagGenerator.new.generate_keywords(@catalog_state)
@aya-soft
aya-soft / _rating.html.haml
Created May 28, 2016 17:02
Жуткое дублирование кода
.down-stars-list-block(style="font-size: 16px" )
- if current_user
- if current_user.role?(:admin)
.popover-info-hover.pointer(data-title="Ваша оценка" data-content="#{render partial: "/catalog/stars_and_rows_for_admin", locals: {spare: spare}}" placement="top")
%span(title="Посмотреть отзывы")
= spare_ratio_link(spare, admin_spare_comments_path(spare_id: spare.id))
- else
- if current_user.spare_comments.by_spare(spare.id).where("active = 0").present?
%span(title="Посмотреть отзывы")
= spare_ratio_link(spare, profile_spare_comments_path(spare_id: spare.id))
@aya-soft
aya-soft / spare_helper.rb
Created May 28, 2016 16:46
Попахивающий кусок кода: на лицо дублирование и неправильное распределение обязанностей между объектами
def spare_ratio_link(spare, url)
if SpareComment.has_comments?(spare)
link_to (rating_stars_row(average_ratio(spare)).html_safe + sum_ratios(spare).to_s), url
else
link_to (rating_stars_row(average_ratio(spare)).html_safe + sum_ratios(spare).to_s), ''
end
end
@aya-soft
aya-soft / routes.rb
Created May 28, 2016 16:40
Не стоит использовать русские буквы в URL, если сайт на 99% состоит из английских URL
resources :spare_comments, path: "отзывы"
@aya-soft
aya-soft / profile\service_station_comments_controller.rb
Last active May 30, 2016 08:21
Как ты не видишь где что лежит из данных - я не понимаю! Все ж на своих местах!
def new
unless current_user.service_station.present?
redirect_to new_profile_service_station_path
else
service = current_user.service_station.service_station_comments.where("spare_id = ?", params[:spare_id])
if service.present?
redirect_to "/profile/service_station_comments/#{service.first.id}/edit"
end
@comment = ServiceStationComment.new
gon.labor_times_price = current_user.service_station.labor_times_price
@aya-soft
aya-soft / new.html.haml
Created May 27, 2016 23:41
gon.labor_times_price - это же тупая константа, а ты целую библиотеку ненужную припахал :(
:javascript
$("#service_station_comment_time_of_installing_current_part").change(function() {
var a = $("#service_station_comment_time_of_installing_current_part").val();
$("#service_station_comment_installing_current_part_price").val(a * gon.labor_times_price)
});