Gemfile нашего проекта на данный момент содержит, помимо обычных дефолтных, следующие гемы:
gem 'twitter'
gem 'jquery-rails'
gem 'materialize-sass', github: "mkhairi/materialize-sass"
gem 'webpacker'
Установку materialize и webpacker опишу очень кратко, в виде последовательности введенных команд; прежде всего - вписываем два этих гема в Gemfile и затем, разумеется - bundle install, ну а дальше от меня, на Fedora 26, потребовались следующие действия:
bundle install
sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash - #optional
sudo dnf install yarn
bundle exec rails webpacker:install
Обычно не мешает добавить в application.scss эту строчку:
app/assets/stylesheets/application.scss:
@import "materialize";
, но на данном этапе для нас с вами это необязательно, все и так заработает. Впрочем, попробуйте: возможно, увидите некоторые изменения в облике странички... да, и теперь нам осталось лишь добавить в index.html.erb - preloader:
<div class="progress" style="display:none;">
<div class="indeterminate"></div>
</div>
и прикрутить ajax:
<script type="text/javascript" language="javascript">
function call() {
var msg = $('#twitsform').serialize();
$.ajax({
type: 'GET',
url: '/tweets',
data: msg,
beforeSend: function(){
$('.progress').show()
},
success: function(data) {
alert('Твиты опубликованы!'),
$('.progress').hide();
},
error: function(xhr, str){
alert('Что-то пошло не так: ' + xhr.responseCode),
$('.progress').hide();
}
});
}
</script>
, также для работы select теперь понадобится совсем небольшой скрипт:
<script>
$(document).ready(function() {
$('select').material_select();
});
</script>
Вьюха, таким образом, полностью выглядит теперь так, как показано на форуме, и засим позвольте на сегодня откланяться.