Solucionado (ver solução)
Solucionado
(ver solução)
17
respostas

fiz todos os passos porem a tabela não esta funcionando

o rails não está dando erro nenhum, mas a estética da tabela não está funcionando.

17 respostas

Oi Fernando, você consegue disponibilizar seu projeto pra gente dá uma olhada? O problema é puramente estético? O bootstrap no caso não está funcionando?

Sim o problema é estético, nenhum momento o bootstrap da erro, o projeto está igual da video aula, porem quando eu inspeciono elemento do projeto, ele não aparece que tem bootstrap no codigo.

Entendi, só uma pergunta, você está usando as gems nas mesmas versões que são mostradas no curso? Isso por que as gems atualizaram e mudaram o processo de instalação e funcionamento.

Então a gente vai precisar saber quais versões que você está usando pra poder te ajudar.

source 'https://rubygems.org'


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.1.6'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Use Puma as the app server
gem 'puma', '~> 3.7'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

# gem 'jquery-rails'
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
gem 'turbolinks', '~> 5'

gem 'jbuilder', '~> 2.5'

group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
# Adds support for Capybara system testing and selenium driver
gem 'capybara', '~> 2.13'
gem 'selenium-webdriver'
end

group :development do
# Access an IRB console on exception pages or by using <%= console %> anywhere in the code.
gem 'web-console', '>= 3.3.0'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

eu apaguei a linha gem 'twitter-bootstrap-rails' porque estava tentando outras formas de instalar o twitter bootstrap mas ainda não consegui

Oi Fernando, tudo bem? Desculpa a demora, estava testando o seu caso e tive que configurar todo o ambiente, não tinha nada pronto pra fazer esse teste, desculpa mesmo.

Quais passos você tentou? Você fez como está descrito na documentação oficial?

https://github.com/seyhunak/twitter-bootstrap-rails

É um pouco chatinho, mas vamos lá, primeiro você põe de volta a linha do gem, executa um bundle install pra o bundler atualizar as dependências e depois você executa o generator pra ele gerar os css's corretos no seu projeto. o comando é:

rails generate bootstrap:install static

Depois disso, os estilos do bootstrap devem estar disponíveis para a sua página. O módulo de assets do Rails deve carregar tudo automaticamente. Se não carregar, a gente precisa ver os seus assets, se estão com os imports corretos.

Os imports padrões já são configurados pra carregar tudo que estiver disponível no projeto.

Continua sem funcionar, que assests precisa ser visto?

Consegue colocar seu projeto no GitHub? Se sim, coloca e manda o link do repositório aqui.

tenho ele no meu drive do google, pode acessa-lo:https://drive.google.com/open?id=1Tf4ADpJQuV4U177eRkfUA3Cl1S0SiSBD

Oi Fernando, testei seu projeto e vamos lá pro passo a passo.

Primeiro, você não tem as include tags de scrits e styles do Rails na sua página, por isso ele nem tenta carregar os assets. Tá aqui o código:

    <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>

Isso você coloca lá no index.html.erb da página de produtos.

Depois, no seu Gemfile, você vai precisar das seguintes gems:

gem 'jquery-rails'
gem 'popper_js'
gem 'twitter-bootstrap-rails'
gem 'coffee-rails'

A primeira por que o bootstrap precisa do jquery e faz um require dele interno. O jquery por sua vez, requer esse popperjs pra que algumas coisas dele funcionem corretamente. O bootstrap já conhecemos e o gem do coffee script foi requerida também, também por que seu projeto tenha sido gerado requerendo o coffee script ou tenha alguma coisa dele configurada.

Obs: você colocou a gem do bootstrap duas vezes, não dá problema, mas é bom colocar só uma vez.

Obs: O pessoal sempre coloca as versões das gems pra que elas não atualizem pra uma versão futura automaticamente e acabe gerando problemas. Mas por enquanto, essa não é uma preocupação que deva observar muito atentamente.

Obs: Pelo que vi, a gem do bootstrap vai instalar o bootstrap 4 no seu projeto, então o nome de algumas classes provavelmente serão diferentes, aqui você pode adaptar os nomes ou instalar as versões usada no curso.

Com o import no lugar certo, as gems configuradas e instaladas, basta rodar o comando pra gerar os assets do bootstrap:

rails generate bootstrap:install static

E depois dar start no servidor e testar!

ele da o seguinte erro: Showing C:/Users/FernandoValle/lojadecamisetas/app/views/produtos/index.html.erb where line #6 raised:

TypeError: Object doesn't support this property or method

Certo, cola aqui o index.html.erb, pra mim ver o que tem na linha 6 exatamente.

<html>
<head>
    <title>Loja</title>
</head>
<body>
     <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
     <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>

<table class="table">
    <thead>
        <tr>
            <th>Nome</th>
            <th>Descrição</th>
            <th>Preço</th>
            <th>Quantidade</th>
        </tr>
    </thead>
    <tbody>
        <% @produtos_nome.each do |produto| %>    
        <tr>
            <td><%= produto.nome %></td>
            <td><%= produto.descricao %></td>
            <td><%= produto.preco %></td>
            <td><%= produto.quantidade %></td>
        </tr>
        <% end %>
    </tbody>    
</table>

<table class="table">
    <thead>
        <tr>
            <th>Nome</th>
            <th>Descrição</th>
            <th>Preço</th>
            <th>Quantidade</th>
        </tr>
    </thead>
    <tbody>
        <% @produtos_preco.each do |produto| %>
        <tr>
            <td><%= produto.nome %></td>
            <td><%= produto.descricao %></td>
            <td><%= produto.preco %></td>
            <td><%= produto.quantidade %></td>
        </tr>
        <% end %>
    </tbody>    
</table>
</body>
</html>

Deve ser algo no ActionView, simplifica a tag pra ver se vai.

<%= stylesheet_link_tag 'application' %>
<%= javascript_include_tag 'application' %>

Showing C:/Users/FernandoValle/lojadecamisetas/app/views/produtos/index.html.erb where line #6 raised:

TypeError: Object doesn't support this property or method

continua o mesmo erro

???????????????

solução!

Oi Fernando, desculpa mesmo. Falha minha na demora.

Testa o seguinte, no arquivo app\assets\javascripts\application.js

Remove o = da última linha:

//= require jquery
//= require popper
//= require bootstrap
// require_tree .

E testa novamente.