2015-10-09 4 views
0

Хорошо ... Так что я использую плагин bxslider-rails (который, по-видимому, никто не использует, потому что я не видел никаких другие вопросы здесь об этом), и я получаю выше TypeError. Я обновил до последних версий jquery-rails и кофейных рельсов. Кажется, что JQuery загружен отлично, и он, похоже, не загружается нигде в приложении.

Вот мой файл макета:

application.html.erb

<%= stylesheet_link_tag "application", :media => "all" %> 
     <%= javascript_include_tag "application" %> 

<style> 
.bxslider { 
    height: auto; 
    width: 640px; 
    background-color: #c41230; 
    background-size: cover; 
    position: relative; 
    border: 1px solid red; 
} 
</style> 

Вот мои application.js:

//= require jquery 
//= require jquery_ujs 
//= require bxslider 
//= require_tree . 

Вот HTML:

<div class="pix" style="float: left;" > 
<ul class="bxslider"> 
<% @dailies.order("created_at desc").limit(2).each do |feat| %> 

<li> 
<%= link_to(image_tag(feat.fphoto.url(:large), :alt => feat.title, :title => "Click here to learn more about liquid.radio"), feat) %> 
</li> 
<% end %> 
</ul> 

<script type="text/JavaScript"> 
     $(document).ready(function(){ 
      $('.bxslider').bxSlider({ 
       infiniteLoop: false, 
       hideControlOnEnd: true 
      }); 
     }); 
    </script> 

</div> 

И, наконец, re spective версии самоцвета:

Использование JQuery рельсы 4.0.5 с помощью JQuery-UI-рельсы 5.0.3 Использование кофе-рельсы 4.1.0 Использование bxslider-реек 4.2.5.1

Это все под Rails 4.2.4

Я пробовал абсолютно все, что мог придумать, и все, что я читаю везде, говорит, что это должно работать ... но это не так. Я получаю TypeError и одно изображение, уложенное поверх другого.

Это тоже ничего не стоит, если я проверю отладчик jquery.bxslider в порядке, но я также получаю bxslider.js, который пуст.

В качестве побочного я также получил сообщение TyperError о том, что «perPage» ActiveAdmin не является функцией.

Любая помощь будет оценена, и это будет в среде разработки.

ответ

1

Хорошо ... это будет один из тех многократных ответов.

Прежде всего: «perPage» TypeError, с которым я работал с ActiveAdmin, был очень интересным ... Это означало, что ActiveAdmin был двойной загрузкой jQuery. Иногда это может привести к тому, что скрипты jQuery вообще не загружаются.

Я посмотрел вокруг и нашел это решение, что:

конфигурации/Инициализаторы/active_admin.rb

current_javascripts = config.javascripts.clone 
    config.clear_javascripts! 
    config.register_javascript 'application.js' 
    current_javascripts.each{ |j| config.register_javascript j } 

И вы можете удалить "// = требуется active_admin/база" из приложения/активов /active_admin.js и просто загрузите все, что было там, в application.js.

Это избавило от «perPage» TypeError, но у меня все еще был тип «bxslider» типаError.

То, что я понял, было bxslider-rails ... по какой-то причине ... на самом деле не загрузило javascript bxslider. Я проверил это, загрузив:

<script src="http://bxslider.com/lib/jquery.bxslider.js"></script> 

Теперь вы можете загрузить это, как хотите. Вероятно, лучшим способом было бы отбросить скрипт в активах где-нибудь ...или в вашей общей папке ... или же вы хотели это сделать. Но проблема оказалась в том, что bxslider-rails действительно не добавляли сценарий в конвейер активов или где-либо еще, что я мог видеть. Так что вам лучше просто загружать сценарий обычным способом. Я буду экспериментировать с другими способами, чтобы загрузить его и загрузить этот пост по мере необходимости, но, в конце концов, просто загрузить скрипт и поместить его в код сам, это то, что сработало для меня, чтобы избавиться от ошибки.

Смежные вопросы