Closed wicky-andrian closed 6 years ago
Can you please provide a sample application that reproduces the error?
@rafaelfranca, I have sample application here
What is the HTML that is being generated? I don't see why that is not working.
in sample/app/views/layouts/application.html.erb if I change <%= image_path @settings.map(&:background_website).join %> with sample/app/assets/images/bg.jpeg <%= image_path 'bg.jpeg' %> its works like this but if I use <%= image_path @settings.map(&:background_website).join %> did'nt show my image from active storage setting/ :background_website, my layouts/aplication stil like this
, I also try with gem paperclip with same sample app and works to.
Can you also paste the generated HTML of that page?
@rafaelfranca I have been paste in sample app right ? I mean this sample sample layouts/application.erb not show image from active storage I have generated in model setting in form :background_website , its from app/views/admin/settings/edit.html.erb , in app/views/admin/settings/edit.html.erb its works but for showing in app/views/layouts/application.html.erb did'nt showing, sorry for my bad english, what do you mean generated HTML of that page ? I made some demo video sample video
The HTML that the browser receives and generated by the application, not the ERB source file. You can open the page in the browser, click with the right button on the screen and click on View Page Source
. There you will see the HTML generated by the application and that was sent to the browser. That is what I want to see.
oh ok this HTML generated
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="hdb7ZUbFIXOpbvGf2kp3k7Yd8p92Kg4RKClBuMYsee6aaCdjvCd7FzaefrhhSFO0ZNW8OdWVVu9zJUttiLV5Ag==" />
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="stylesheet" media="all" href="/assets/datatables.min.self-247ebbeee8b53c76770bf2e20c2918e0c6b830f7bf46193325a7507b26ab502a.css?body=1" data-turbolinks-track="reload" />
<link rel="stylesheet" media="all" href="/assets/custom.self-a384e6d2dcba06454253680503c379dc59b658390dfb5e02650c6e5ef383cb32.css?body=1" data-turbolinks-track="reload" />
<link rel="stylesheet" media="all" href="/assets/dataTables.bootstrap4.min.self-17e0da2800a542eb7cee178c202ea84e101132e5a77bcf96cf12034fb8d7b8f0.css?body=1" data-turbolinks-track="reload" />
<link rel="stylesheet" media="all" href="/assets/backend/bootstrap.min.self-a25e528dfbb86d0b84cebc5e9b0944c5be542d72fadbc3fde89316966cd8b2d1.css?body=1" data-turbolinks-track="reload" />
<link rel="stylesheet" media="all" href="/assets/font-awesome/css/font-awesome.min.self-306130e6ba08a261d693df60443a670ca53a7a541654c4138090053ccf0a94a2.css?body=1" data-turbolinks-track="reload" />
<link rel="stylesheet" media="all" href="/assets/sb-admin.self-52f6706eefd818340085babc5e7651fca82f35138eb74892b39be993d71cbdad.css?body=1" data-turbolinks-track="reload" />
<link rel="stylesheet" media="all" href="/assets/application.self-9b5c1c413e1c5621f1018a051d40504e79496a2cb27a26356d62eb5b76e63f57.css?body=1" data-turbolinks-track="reload" />
<script src="/assets/rails-ujs.self-551fbd47b981dacbb84a270f9123074caf39eb72aaf6f478ab597c6f81435e4b.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/activestorage.self-6e8d967adecc8b2a7259df0f51ef5b6f171c33267c7d149a474beccd90c68697.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/turbolinks.self-2db6ec539b9190f75e1d477b305df53d12904d5cafdd47c7ffd91ba25cbec128.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/jquery_ujs.self-784a997f6726036b1993eb2217c9cb558e1cbb801c6da88105588c56f13b466a.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/datatables.min.self-b891e891829f058be3822af07970fd7b10348c00591a0e479a52714f1133206b.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/dataTables.bootstrap4.min.self-81a49c816b4aac8360d6422ba3d3ca96fc259f5407ac8536167ed9bb7018c87a.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/front/bootstrap.min.self-3f55ae7cb1e0ade8ec6caee602a1f92c77404301eca33b891f02f5418470abd1.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/sb-admin.min.self-2c2a986e56747ea062c4096c3898f1e9edb9a69ae5cd3cff9468f2352bdb66fc.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/bootstrap.bundle.min.self-1ee97f31e4f97c8a61a125110093a07954a88ae7b69074636707b5c961dcd0db.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/sb-admin-datatables.min.self-c1f00e5b8080f45299fbd8781c7025b295148fa4cf029a0be6f90fac9128de41.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/sb-admin-charts.min.self-f51f5dfadc33cb6516e494368461147c05b3632df8cc928875bfa0bf4845962f.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/application.self-4bbbad0e4c479f25137b7b5f70d6e8348d3c52d254a89fafebc1539eca58f68b.js?body=1" data-turbolinks-track="reload"></script>
</head>
<body class="text-center">
<style media="screen">
body { background-image: url(/images/#<ActiveStorage::Attached::One:0x0055a709ba0dc8>) !important;
font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
-webkit-background-size: cover;
-moz-background-size: cover;
background-size: cover;
-o-background-size: cover;
}
</style>
<div class="body"></div>
<div class="judul_website">test</div>
<form class="form-signin" action="/session" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="l51zzQKL26Z3pGXM/B3ZpI54x8cXvkaNDBTiNIjT973pvhUeD4K3OUVDhhL88vh205rxeXpMpQuY2lE20Sn8Lg==" />
<form class="form-signin">
<h1 class="h3 mb-3 font-weight-normal">Login</h1>
<input type="text" name="email" id="email" placeholder="Email" class="form-control" /><br>
<input type="password" name="password" id="password" placeholder="Password" class="form-control" />
<input type="submit" name="commit" value="login" class="btn btn-primary btn-lg btn-block" data-disable-with="login" />
<p class="mt-5 mb-3 text-muted">test footer</p>
</form>
</form> </body>
</html>
The following builds an array of ActiveStorage::Attached::One
objects, calls to_s
on each one, and joins the resulting strings together:
@settings.map(&:background_website).join
ActiveStorage::Attached::One#to_s
doesn’t return anything useful:
> setting = Setting.last
> setting.background_website.to_s
# => "#<ActiveStorage::Attached::One:0x00...>"
You probably want to pick a single attachment and call image_path
on it:
background-image: url(<%= image_path @settings.collect(&:background_website).detect(&:attached?) %>) !important;
thank you @rafaelfranca & @georgeclaghorn, it works.
Steps to reproduce
I have model 'Setting' with active storage :background_website, and string :title_website. its works when I used in settings/edit.html.erb
Expected behavior
I need to show background_image in layouts/application.html.erb with css inline like this
Actual behavior
in layouts/application.html.erb only show
<title><%= @settings.map(&:title_website).join %></title>
but for active storage :background_website not showSystem configuration
Rails version: Rails 5.2.0 Ruby version: ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]