Reputation: 2523
I am trying to get bootstrap modals to work but so far no success. The details of what I think are the relevant files are below.
Gemfile
source 'https://rubygems.org'
ruby '2.2.2'
gem 'rails', '4.1.7'
gem 'pg', '0.17.1'
gem 'devise', '3.5.2'
gem 'omniauth-facebook'
gem 'simple_form', github: 'plataformatec/simple_form'
gem 'activeadmin', github: 'activeadmin'
gem 'possessive'
# gem 'paperclip', '~> 4.2'
gem 'cocaine', '~> 0.5.3'
# gem 'rmagick'
gem 'aws-sdk'
gem 'carrierwave'
gem 'mini_magick'
gem 'fog'
gem 'newrelic_rpm'
gem 'acts-as-taggable-on'
gem 'acts_as_commentable_with_threading'
gem 'acts_as_votable', '~> 0.10.0'
gem 'leaderboard'
gem 'turbolinks', '2.3.0'
gem 'jquery-turbolinks'
gem 'public_activity'
gem 'figaro'
gem 'will_paginate', '~> 3.0.7'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
# Gems used only for assets and not required
# in production environments by default.
gem 'sass-rails', '~> 5.0.0.beta1'
gem 'coffee-rails', '~> 4.1.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platforms => :ruby
gem 'bootstrap-sass', '~> 3.2.0'
gem 'autoprefixer-rails'
gem 'font-awesome-sass'
gem 'uglifier', '>= 1.0.3'
gem 'jquery-rails', '2.3.0'
gem 'fancybox2-rails', '~> 0.2.8'
group :test do
gem 'minitest-reporters', '1.0.5'
gem 'mini_backtrace', '0.1.3'
# automatically runs tests when you save a file, but takes up too much CPU for cloud9
# gem 'guard-minitest', '2.3.1'
end
group :production do
gem 'rails_12factor'
gem 'puma'
end
group :rake do
gem 'faker'
end
application.js
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require bootstrap-sprockets
//= require bootstrap-select.min
//= require turbolinks
//= require fancybox
//= require_tree .
application.css.scss
/*
*= require bootstrap-select.min
*= require fancybox
*/
@import "bootstrap-sprockets";
@import "bootstrap";
shopping.html.erb
<% provide(:title, 'Shopping') %>
<div class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title">Modal title</h4>
</div>
<div class="modal-body">
<p>One fine body…</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
I have a 'shopping' action in a controller. When I visit the page /shopping the layout there but the body being yielded is blank. I just copied the code from the bootstrap modals page under static example because I wanted to see if it would work before trying to customize it.
Upvotes: 2
Views: 879
Reputation: 427
In application.js you're missing the core bootstrap js files.
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
/* insert bootstrap here */
//= require bootstrap-sprockets
//= require bootstrap-select.min
//= require turbolinks
//= require fancybox
//= require_tree .
Then add an id to your shopping.html.erb view
<% provide(:title, 'Shopping') %>
<div class="modal fade" id="myModal"><!--observe new id -->
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span>
</button>
<h4 class="modal-title">Modal title</h4>
</div>
<div class="modal-body">
<p>One fine body…</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes
</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<!-- for learning purposed, initalize the modal in a script tag, once you're comfortable add this to a js file-->
<script>$('#myModal').modal('show');</script>
Bootstrap modal is a core js function of the framework. Then inialize it in your Hope that helps.
Upvotes: 2