У меня есть некоторые глобальные фрагменты, которые запрашиваются почти через все приложение. Все работает, но когда я смотрю на свои журналы, я понимаю, что все выглядит не очень красиво. Мне было интересно, есть ли способ рефакторинга кода. Любая помощь приветствуется.Рефакторинг активной записи глобального запроса в rails
module ApplicationHelper
include GlobalSettings
end
Запрос выглядит примерно так.
module GlobalSettings
def app_facebook_page
"http://facebook.com/#{account_setting.facebook}" if account_setting.facebook.present?
end
def app_linkedin
"https://www.linkedin.com/#{account_setting.linkedin}" if account_setting.linkedin.present?
end
def app_twitter
"https://twitter.com/#{account_setting.twitter}" if account_setting.twitter.present?
end
def app_google_plus
"https://plus.google.com/#{account_setting.googleplus}" if account_setting.googleplus.present?
end
def app_instagram
"https://instagram.com/#{account_setting.instagram}" if account_setting.instagram.present?
end
def app_pinterest
"https://www.pinterest.com/#{account_setting.pinterest}" if account_setting.pinterest.present?
end
def app_address
account_setting.address.empty? ? '' : account_setting.address
end
def app_meta_title
account_setting.title.empty? ? '' : account_setting.title
end
def app_meta_description
account_setting.description.empty? ? '' : account_setting.description
end
def app_city
account_setting.city.empty? ? '' : account_setting.city
end
def app_postcode
account_setting.postcode.empty? ? '' : account_setting.postcode
end
def app_google_analytics
account_setting.google_analytics.nil? ? '' : account_setting.google_analytics
end
def app_country
account_setting.country.empty? ? '' : account_setting.country
end
def app_logo
if account_setting.logo.blank?
"#{ current_account.subdomain.capitalize }"
else
cl_image_tag("#{ account_setting.logo }", height: '30')
end
end
def app_favicon
if current_account
if account_setting.favicon.blank?
'/assets/favicon/apple-touch-icon-144.png'
else
"#{account_setting.favicon}"
end
end
end
def app_social_cover
if current_account
if account_setting.social_cover.blank?
'/assets/facebook-timeline.png'
else
"#{account_setting.social_cover}"
end
end
end
def account_setting
Setting.last
end
end
Мои журналы выглядят несколько нечистыми. Что можно сделать, чтобы исправить это?
Started GET "/settings/1/edit" for 127.0.0.1 at 2015-05-04 00:44:59 +0200
Processing by SettingsController#edit as HTML
Parameters: {"id"=>"1"}
User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT 1 [["id", 1]]
Account Load (0.2ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."subdomain" = $1 LIMIT 1 [["subdomain", "demo"]]
Setting Load (0.3ms) SELECT "settings".* FROM "settings" WHERE "settings"."id" = $1 LIMIT 1 [["id", 1]]
Setting Load (1.9ms) SELECT "settings".* FROM "settings" WHERE "settings"."account_id" = $1 LIMIT 1 [["account_id", 1]]
Rendered settings/edit.html.slim within layouts/emet (76.9ms)
Setting Load (1.3ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
Account Load (0.6ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.0ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.0ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.0ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.0ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.0ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.0ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.0ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.0ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.0ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.0ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.0ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.0ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.0ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.1ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.1ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.1ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.0ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.2ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.1ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.1ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.1ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (1.0ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.1ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.1ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.0ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.0ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.0ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.0ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.0ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.1ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.0ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.0ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.1ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.1ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.1ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.1ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.0ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.0ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.1ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.0ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.0ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.0ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.0ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.0ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.3ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.1ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.0ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.0ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.0ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.0ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
CACHE (0.1ms) SELECT "settings".* FROM "settings" ORDER BY "settings"."id" DESC LIMIT 1
CACHE (0.1ms) SELECT "public"."accounts".* FROM "public"."accounts" WHERE "public"."accounts"."id" IN (1)
Rendered application/head/_social_metadata.html.slim (146.3ms)
Rendered application/nav/_navigation_links.html.slim (0.8ms)
Rendered application/nav/_navigation.html.slim (2.6ms)
Completed 200 OK in 479ms (Views: 466.1ms | ActiveRecord: 9.1ms)
спасибо. Выглядит чище. – Benjamin