javascript - attribute - tooltip html bootstrap
Rieles-Configuración Bootstrap (2)
Estoy tratando de hacer que bootstrap javascript funcione en mi aplicación rails 4.
Hice estas preguntas pero no he podido obtener ayuda.
https://stackoverflow.com/questions/33685338/rails-with-bootstrap-tabs
https://stackoverflow.com/questions/33852687/rails-4-bootstrap-date-picker
Cada vez me siento más derrotado por este desafío. Es deprimente que bootstrap se describa como una herramienta simple para rieles. Me complacería pagar USD100 si alguien pudiera ayudar a resolver este problema.
Mi problema es específicamente con las funciones de javascript. Mis pestañas no funcionan. Cuando haces clic en el enlace, no pasa nada. Además, el selector de fechas no funciona (esperaba un calendario para elegir una fecha con un solo clic).
En mi archivo de gemas tengo:
gem ''sass-rails'', ''~> 5.0''
gem ''bootstrap-sass'', ''~> 3.3.5''
gem ''font-awesome-sass'', ''~> 4.4.0''
gem ''bootstrap-slider-rails''
gem ''bootstrap-datepicker-rails''
gem ''jquery-rails''
En mi application.html.erb, tengo:
<link href=''http://fonts.googleapis.com/css?family=Quicksand|Roboto:300'' rel=''stylesheet'' type=''text/css''>
<link href=''http://fonts.googleapis.com/css?family=Noto+Sans'' rel=''stylesheet'' type=''text/css''>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="p:domain_verify" content="44c82789b3dcecac427e4b65123fb68d"/>
<title><%= content_for?(:title) ? yield(:title) : "RE" %></title>
<meta name="description" content="<%= content_for?(:description) ? yield(:description) : "Ae" %>">
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => false %>
<%= javascript_include_tag "application", "data-turbolinks-track" => false %>
<%= csrf_meta_tags %>
<%= favicon_link_tag %>
<script src="https://www.google.com/jsapi"></script>
<script src="https://www.youtube.com/iframe_api"></script>
Turbolinks está apagado porque uso olark.
En mi carpeta de hojas de estilo, tengo archivos llamados:
application.css.scss:
*= require_framework_and_overrides.css.scss
*= require bootstrap-datepicker
*= require_self
*= require_tree .
*/
Siguiendo los comentarios que se detallan a continuación, cambié este archivo para que se llamara application.scss y cambié el orden y la referencia a:
*= require_tree .
*= require_self
*= require framework_and_overrides.css.scss
*= require bootstrap-datepicker
*/
framework_and_overrides.css.scss
@import "bootstrap-sprockets";
@import "bootstrap";
@import "font-awesome-sprockets";
@import "font-awesome";
@import "bootstrap-slider";
En mi carpeta javascript, tengo un archivo llamado:
aplicacion.js:
//= require jquery
//= require jquery_ujs
//= require underscore
//= require gmaps/google
//= require bootstrap-slider
//= require bootstrap-sprockets
//= require bootstrap-datepicker
//= require_tree .
project_dates.coffee.js
$(document).on "focus", "[data-behaviour~=''datepicker'']", (e) ->
- $(this).datepicker
- format: "dd-mm-yyyy"
- weekStart: 1
- autoclose: true
Entonces, en mi opinión, estoy tratando de usar pestañas bootstrap, de modo que al hacer clic en una pestaña aparece un parcial debajo de la barra de enlaces:
<div class="containerfluid">
<div class="row" style="margin-top:50px">
<div class="col-xs-10 col-xs-offset-1">
<ul class="nav nav-tabs nav-justified">
<li role="presentation" class="active"> <a href="#terms" aria-controls="terms" role="tab" data-toggle="tab">Terms</a></li>
<li role="presentation"> <a href="#privacy" aria-controls="privacy" role="tab" data-toggle="tab">Privacy</a></li>
<li role="presentation"> <a href="#licence" aria-controls="licence" role="tab" data-toggle="tab">Licence</a></li>
<li role="presentation"> <a href="#trust" aria-controls="trust" role="tab" data-toggle="tab">Trust</a></li>
<li role="presentation"> <a href="#reliance" aria-controls="reliance" role="tab" data-toggle="tab">Reliance</a></li>
<li role="presentation"> <a href="#pricing" aria-controls="pricing" role="tab" data-toggle="tab">Pricing</a></li>
</ul>
</div>
</div>
<div class="row">
<div class="col-xs-10 col-xs-offset-1">
<div class="intpolmin" style="margin-top: 50px; margin-bottom: 30px">
We give meaning to other words used in these terms and policies throughout, and identify those words as having an ascribed meaning, with <em>emphasised</em> text.
</div>
</div>
</div>
<div class="row">
<div class="col-xs-8 col-xs-offset-2">
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="terms"><%= render ''pages/legalpolicies/terms'' %></div>
<div role="tabpanel" class="tab-pane" id="privacy"><%= render ''pages/legalpolicies/privacy'' %></div>
<div role="tabpanel" class="tab-pane" id="licence"><%= render ''pages/legalpolicies/licence'' %></div>
<div role="tabpanel" class="tab-pane" id="trust"><%= render ''pages/legalpolicies/trust'' %></div>
<div role="tabpanel" class="tab-pane" id="reliance"><%= render ''pages/legalpolicies/reliance'' %></div>
<div role="tabpanel" class="tab-pane" id="pricing"><%= render ''pages/legalpolicies/pricing'' %></div>
</div>
</div>
</div>
</div>
Nada sucede cuando haces clic en los enlaces.
En mi formulario de fechas de proyecto, tengo este campo de formulario:
<%= f.date_select :start_date, :label => "When does this project begin?", ''data-behaviour'' => ''datepicker'', order: [:day, :month, :year] %>
No hace un selector de fecha. En su lugar, son solo tres campos separados para d / m / a. Además, la etiqueta no se muestra, pero puedo solucionar ese problema.
¿Hay algo mal con mi configuración?
Cuando cambio mi application.js para eliminar:
//= require bootstrap
Luego, el js funciona de modo que cuando hace clic en uno de los enlaces de la pestaña en la parte superior, salta una larga página de texto hasta el punto donde comienza el texto relevante. Eso no es lo que quiero. Quiero hacer clic en el enlace de la pestaña y para eso ocasionar que el parcial relevante se muestre debajo de los enlaces (y todos los demás parciales no se representen).
No hay cambios en el problema del selector de fecha que resultan de este cambio en application.js
Cuando intento agregar:
Bundler.require(:default, Rails.env)
a mi config / application.rb (según este post Javascript de Bootstrap-sass gem que no funciona en Rails 4 )
No obtengo un resultado diferente a los problemas descritos anteriormente.
Cuando intento agregar
//= require bootstrap-sprockets
En mi application.js (después de jquery), el js deja de funcionar, de modo que cuando hago clic en el enlace del menú de pestañas, no sucede nada.
Soy consciente de que la guía del usuario para https://github.com/twbs/bootstrap-sass dice:
bootstrap-sprockets and bootstrap should not both be included in application.js.
Por esa razón, quité bootstrap de mi application.js.
También soy consciente de que la guía del usuario para esa gema dice:
Do not use *= require in Sass or your other stylesheets will not be able to access the Bootstrap mixins or variables.
Todavía tengo esto en mi aplicación.css.scss:
*= require_framework_and_overrides.css.scss
*= require bootstrap-datepicker
*= require_self
*= require_tree .
*/
Leí la documentación de la gema en el sentido de que estoy haciendo algo mal al mantener estos archivos en mi css, pero la documentación de la gema no le dice qué usar en su lugar.
Dice:
Then, remove all the *= require_self and *= require_tree . statements from the sass file. Instead, use @import to import Sass files.
¿Cómo haces esto?
El archivo de gema completo se copia a continuación:
source ''https://rubygems.org''
# ------------------ Bundle edge Rails instead: gem ''rails'', github: ''rails/rails''
gem ''rails'', ''4.2.4''
# ------------------ Use postgresql as the database for Active Record
gem ''pg''
# ------------------ Use SCSS for stylesheets
gem ''sass-rails'', ''~> 5.0''
gem ''bootstrap-sass'', ''~> 3.3.5''
gem ''font-awesome-sass'', ''~> 4.4.0''
gem ''bootstrap-slider-rails''
gem ''bootstrap-datepicker-rails''
# ------------------ Use Uglifier as compressor for JavaScript assets
gem ''uglifier'', ''>= 1.3.0''
# ------------------ Use CoffeeScript for .coffee assets and views
gem ''coffee-rails'', ''~> 4.1.0''
# ------------------ See https://github.com/rails/execjs#readme for more supported runtimes
gem ''therubyracer'', platforms: :ruby
# ------------------ Use jquery as the JavaScript library
gem ''jquery-rails''
# ------------------ Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
# gem ''turbolinks''
# ------------------ Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem ''jbuilder'', ''~> 2.0''
# ------------------ bundle exec rake doc:rails generates the API under doc/api.
gem ''sdoc'', ''~> 0.4.0'', group: :doc
# ------------------ Use ActiveModel has_secure_password
gem ''bcrypt'', ''~> 3.1.7''
# ------------------ Use Unicorn as the app server
# gem ''unicorn''
# ------------------ Use Capistrano for deployment
# gem ''capistrano-rails'', group: :development
# ----------- USERS
# ------------------ authentication
gem ''devise'', ''3.4.1''
gem ''devise_zxcvbn''
gem ''omniauth''
gem ''omniauth-oauth2'', ''1.3.1''
gem ''omniauth-google-oauth2''
gem ''omniauth-facebook''
gem ''omniauth-twitter''
gem ''omniauth-linkedin-oauth2''
gem ''google-api-client'', require: ''google/api_client''
# gem ''oauth2''
# ------------------ authorisation
gem ''pundit''
# ------------------ user roles
# ------------------ messaging
# ------------------ money
gem ''money-rails''
# ----------- CONTENT
gem ''state_machine''
gem ''acts_as_approvable''
# ------------------ file uploads
gem ''carrierwave''
gem ''mini_magick''
gem ''simple_form''
# ------------------ video
gem ''yt'', ''~> 0.25.5''
gem ''vimeo''
# ------------------ organisation
gem ''acts-as-taggable-on'', ''~> 3.4''
# ------------------ search
# ----------- OTHER
# ------------------ security
gem ''figaro''
# ------------------ performance
gem ''rails-observers''
gem ''high_voltage'', ''~> 2.4.0''
# ------------------ location
gem ''geocoder''
gem ''gmaps4rails''
gem ''underscore-rails''
gem ''country_select''
group :development, :test do
# Call ''byebug'' anywhere in the code to stop execution and get a debugger console
gem ''byebug''
end
group :development do
# Access an IRB console on exception pages or by using <%= console %> in views
gem ''web-console'', ''~> 2.0''
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem ''spring''
end
group :production do
gem "rails_12factor"
end
ruby "2.2.2"
Viendo este video - https://gorails.com/episodes/styling-with-bootstrap-sass
La configuración parece muy simple, pero este tutorial no corrige el archivo para eliminar las referencias que se requieren como lo sugiere la documentación de la gema (pero no lo he hecho), pero este tutorial aún funciona para que funcione bootstrap. ¿Hay ALGO que alguien pueda ver que pueda intentar? A punto...
Como puede ver, he estado intentando esto durante más de un año. He estado en reuniones mensuales, mentores de código pagado y contratistas contratados que no han podido ayudar. Esperando un milagro en este tablero. Bootstrap Sass con rieles 4
TRATANDO LA SOLUCIÓN DE RESCATE ABAJO:
Entonces, ahora tengo:
hojas de estilo de la siguiente manera:
application.css
*= require_tree .
*= require_self
*/
custom.css.scss
@import "bootstrap-sprockets";
@import "bootstrap";
framework_and_overrides.css.scss:
@import "font-awesome-sprockets";
@import "font-awesome";
@import "bootstrap-slider";
archivos javascript de la siguiente manera:
application.js
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require_tree .
application.html.erb:
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => false %>
<%= javascript_include_tag "application", media: ''all'', "data-turbolinks-track" => false %>
archivo gem
gem ''sass-rails'', ''~> 5.0''
gem ''bootstrap-sass'', ''~> 3.3.5.1''
gem ''font-awesome-sass'', ''~> 4.4.0''
gem ''bootstrap-slider-rails''
gem ''bootstrap-datepicker-rails''
Cuando guardo todo esto y completo los pasos sugeridos, no hay cambios a los anteriores. Al hacer clic en un enlace en la pestaña de enlaces en la parte superior, el cuadro pequeño en la parte inferior de la pantalla dice ''ir a # [nombre de la pestaña del enlace] en esta página, pero no sucede nada.
Encontré el mismo problema que tú y encontré una solución (excavando en la web profunda) que funcionó para mí. Intente agregar los requisitos después de la línea require_tree .
en el archivo .css
y en el archivo .js
solo el selector de fecha que usa; como a continuación:
aplicacion.css
...
*= require_tree .
*= require_self
*= require bootstrap
*= require bootstrap-datepicker
*/
aplicacion.js
...
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require_tree .
//= require bootstrap-datepicker
Está relacionado con el flujo de activos de Ruby on Rails, puede ir más allá sobre este tema en esta página http://guides.rubyonrails.org/asset_pipeline.html , pero primero intente cambiar el orden de las líneas.
Estás en el infierno de la configuración, y he construido un producto de trabajo mínimo para sacarte de allí. Para lograr esto, abordamos sus problemas en orden de aparición y no intentamos resolverlos en paralelo. Esta respuesta se enfoca en tu primera pregunta y probablemente resuelve las otras.
A continuación la copia del archivo Léame del proyecto. En caso de que necesite acceso al producto, hágamelo saber.
Leer
Esta es una aplicación de demostración para ayudar a user "user2860931" con los problemas mencionados aquí.
Las preguntas se enumeran en orden cronológico:
[Q1] Noviembre, 13 Rieles con lengüetas de Bootstrap
[P2] Noviembre, 22 Rieles 4 - Selector de fecha Bootstrap
[Q3] Noviembre, 24 Rieles - Configuración Bootstrap
Descripción del problema
Se han realizado muchos intentos de configuración y un entorno de desarrollo subóptimo probablemente interrumpió las convenciones de nomenclatura de los rieles al agregar extensiones de archivo.
Versiones utilizadas
Rieles 4.2.5
Pasos para crear esta aplicación por ti mismo
Primer chequeo para una versión apropiada de los carriles
$ rails --version
Asegúrese de que el entorno de desarrollo (IDE) no agregue las extensiones de archivo por sí mismo
Creando una nueva aplicación de rieles
$ rails new rescue
Localice el archivo Gem de la aplicación creada en 1. y comente la entrada de la gema turbolinks. Quite los enlaces explicativos para mayor claridad visual.
Agregue las siguientes líneas a su Gemfile (es posible que desee arreglar las gemas de una versión en particular para evitar que una aplicación deje de funcionar con una actualización no planificada, pero este es otro problema)
gem ''bootstrap-sass'' #, ''3.3.5.1''
correr
$ bundle exec bundle update $ bundle exec bundle install
Cree la aplicación de archivo / asset / stylesheets / custom.css.scss y agregue las siguientes líneas:
@import "bootstrap-sprockets"; @import "bootstrap";
Agregue la siguiente línea a app / asset / javascripts / application.js
//= require bootstrap
IMPORTANTE: esta línea debe seguir las líneas de jquery y jquery-ujs y antes de la directiva require_tree para que el archivo resultante tenga el siguiente aspecto:
//= require jquery //= require jquery_ujs //= require bootstrap //= require_tree .
NOTA: Hemos eliminado la línea de turbolinks, para reflejar la configuración del sistema de producción del usuario "user2860931" ().Después de guardar todos los archivos editados, verifique si el entorno de desarrollo ha alterado las extensiones de archivo (solo para estar seguro esta vez)
. ├── app │ ├── assets │ │ ├── images │ │ ├── javascripts │ │ │ └──application.js
│ │ └── stylesheets │ │ ├── application.css │ │ └── custom.css.scssGenerar un controlador mínimo junto con la acción y la vista relacionada
$ rails generate controller planets index
Iniciar el servidor
$ rails s
Visita en tu navegador
Último paso para eliminar completamente los turbolinks.
Ver el código fuente HTML del sitio mencionado en 11.
Desde el archivo app / views / layouts / application.html.erb, elimine todos los atributos de data-turbolinks-track para que el código ERB se vea como:
<%= stylesheet_link_tag ''application'', media: ''all'' %> <%= javascript_include_tag ''application'' %>
Repita el paso 1. y note la diferencia
Visite el archivo app / views / planets / index.html.erb y sustitúyalo por su HTML como se indica en [Q1]
Esta configuración muestra sus parciales bajo el panel de pestañas correcto. Tenga en cuenta que está trabajando en el entorno de desarrollo de Rails. Una llamada a
$ rake assets:clean $ rake assets:precompile
podría ser necesario para ver los cambios una vez que implemente su proyecto principal (no debería ser necesario en el modo de desarrollo de Rails).
Sugerencia: utilice archivos de datos simulados como argumentos para la función de procesamiento.
app │ └── views
│ │ │ └── planets │ ├── _dummy00.html.erb │ ├── _dummy01.html.erb │ ├── _dummy02.html.erb │ ├── _dummy03.html.erb │ ├── _dummy04.html.erb │ ├── _dummy05.html.erb
y usa llamadas para render ''planets/dummy05''
en su HTML de Q1. Asegúrese de que cada archivo ficticio contenga datos ligeramente diferentes, para poder verificar que las pestañas funcionen.
El resultado de la maqueta proporciona pestañas a través de bootstrap y se ve así .
Las pestañas están funcionando como se espera .
Al proporcionarle el producto de trabajo mínimo, debe estar habilitado para llevar su configuración a un estado de trabajo.
Después de toda la preparación, agregue un selector de fechas simplemente siguiendo los trabajos oficiales de documentación, que responden a la P2 :
Fuentes utilizadas para proporcionar esta respuesta
https://www.railstutorial.org/ por Michael Hartl
http://getbootstrap.com/components/#nav
http://getbootstrap.com/javascript/#tabs