Как использовать Polymer (1.0) с Rails (4)?
Теперь, когда Polymer (1.0) является "готовой продукцией", это лучший способ использовать его на Rails (4)?
Я много читал, и я видел, что все решения устарели (например, используя такие Gems, как: likepolymer-rails, emcee и т.д.)
Я потерялся, пытаясь создать хорошую структуру для проекта и способ включить все полимерные компоненты, также я не знаю, может ли Sprocket помочь или нет.
Ответы
Ответ 1
UPDATE (16 июня 2015 г.): официальный пакет выпущен для polymer-rails
. См. polymer-elements-rails
, который является новым и официальным репозиторием, который включает в себя iron-
, paper-
и neon-elements
.
Я буду держать эти вилки на время для тех, кто еще может их уже установить как зависимость, но вы получите идентичную функциональность и длительную поддержку от использования официального репозитория, поэтому я настоятельно призываю вас переключиться, если вы нет.
Проект polymer-rails обновлен до 1.0, но, к сожалению, драгоценных камней для компонентов еще нет. Я пошел вперед и создал соответствующие вилки, чтобы там был какой-то рабочий вариант.
Ваш gemfile должен иметь:
gem 'polymer-rails'
gem 'polymer-iron-rails', :git => "git://github.com/vsimonian/polymer-iron-rails.git"
gem 'polymer-paper-rails', :git => "git://github.com/vsimonian/polymer-paper-rails.git"
gem 'polymer-neon-rails', :git => "git://github.com/vsimonian/polymer-neon-rails.git"
Затем запустите bundle
.
В app/assets/components/application.html.erb
вы устанавливаете свои зависимости:
//= require polymer/polymer
//= require iron-ajax/iron-ajax
//= require iron-input/iron-input
.....
app/assets/javascripts/application.js
должен содержать:
//= require webcomponentsjs/webcomponents-lite
В вашем .bowerrc
должен быть установлен каталог сторонних компонентов:
{
"directory": "vendor/assets/components"
}
Ответ 2
Вы можете найти Rails Assets, чтобы быть хорошим способом добавить это в свое приложение.
Rails Assets является прокси-сервером Bower для генерации драгоценных камней из существующих библиотек JavaScript переднего конца и установки их от вашего имени через bundler/your Gemfile. Это нарушает вашу зависимость от сборщиков драгоценных камней, чтобы поддерживать современные библиотеки Javascript.
В основном вы добавили бы это в свой Gemfile:
source 'https://rails-assets.org' do
gem 'rails-assets-polymer'
end
Затем запустите bundle install
(убедитесь, что комплект поставки версии 1.8.4 или выше или он не будет работать с указанным выше фрагментом)
Наконец, добавьте //= require polymer
в соответствующее место в application.js.
Ответ 3
Несколько месяцев назад я попробовал полимер, надеюсь, что это поможет вам понять идею
В GemFile
gem 'rails', '4.0.2'
gem 'polymer-rails'
gem 'polymer-core-rails'
gem 'polymer-paper-rails'
В app/assets/components/application.html.erb
//= require polymer/polymer
В приложении/активах/javascripts/application.js
//= require polymer/platform
Вы показываете файлы .bowerrc со следующим содержанием
{
"directory": "vendor/assets/components"
}
Пример рендеринга вида с полимаром
<style>
google-map {
display: block;
height: 600px;
}
</style>
<h1>Polymer Rails Example</h1>
<google-map latitude="37.77493" longitude="-122.41942" fitToMarkers>
<google-map-marker latitude="37.779" longitude="-122.3892" draggable="true" title="Go Giants!"></google-map-marker>
<google-map-marker latitude="37.777" longitude="-122.38911"></google-map-marker>
</google-map>
<google-map disableDefaultUI showCenterMarker zoom="15"></google-map>
<script>
var map = document.querySelector('google-map');
map.latitude = 37.77493;
map.longitude = -122.41942;
map.addEventListener('google-map-ready', function(e) {
alert('Map loaded!');
});
</script>
Вы можете взглянуть на мой проект, используя плумер, а не красивую кодировку, но все же вы можете получить представление об этой фиксации Репозиторий Github
Ответ 4
polymer-elements-rails
был создан камень, поскольку нет смысла/возможности разделить их на разные драгоценные камни, так как все эти компоненты имеют круговые зависимости. Поэтому вряд ли рекомендуется переключаться на этот камень вместо использования устаревших polymer-paper-rails
, polymer-iron-rails
и т.д. Они никогда не будут обновлены для Polymer 1.0
.