Замечания к ТЗ
-
Почему resources :sessions? сессия же одна мы не можем видеть списка сессий.
-
Странность
@gists = Gist.opened .preload(:user) .order(Arel.sql('random()')) .limit(10)Почему бы не так?
Gist .opened .inlcudes(:user) .order('RANDOM()') .limit(10) -
Зачем использовать респондер? У тебя же нет варианотов других. В некоторых контроллерах это серьезно утяжеляет чтение
respond_to do |format| format.html do render layout: 'long_layout' end end -
Почему?
return unless current_user.nil?а не:
return if current_user.present? -
Зачем в модели user? Это поле есть в secure_passwords
attribute :password_confirmation, default: '' -
Зачем билдить массив? Мне кажется тем самым ты теряешь информацию о найденных словах (вырывая гисты из search_result). И билдить массив через each не очень когда есть flatten
class SearchGists def self.call(search) gists = [] search_results = PgSearch.multisearch(search[:params]) search_results.each do |result| result.searchable.search_gists.each do |gist| gists << gist end end gists end endЛично мне кажется это читабельней
PgSearch .multisearch(search[:params]) .search_results .map(&:result) .map(&:searchable) .map(&:search_gists) .flatten -
Чем не устраивает классический хелпер I18n.t?
<%= i18n_v('search.title') %> -
Какой нить слим или хамл было бы не плохо применить.
-
Что за наркомания? CSS в javascripts?
app/assets/javascripts/ckeditor/contents.css -
В application.css лучше не писать стилей напрямую, тем более когда уже создан файл для кастомных стилей
app/ assets/stylesheets/styles/layout/custom.scss. В целом не пижу структуры в организации стилей. -
Тоже самое и про
gist_custom/app/assets/javascripts/application.jsНе надо там писать никаких js напрямую.
Мой коллега смотрел тоже:
В целом хорошо Единственное замечание это то, что он вьюшки на erb пишет Если чел с большим опытом рельсы, то наверное он по умолчанию будет на slim делать или как минимум на haml.