Подтвердить что ты не робот

Как использовать Polymer (1.0) с Rails (4)?

Теперь, когда Polymer (1.0) является "готовой продукцией", это лучший способ использовать его на Rails (4)?

Я много читал, и я видел, что все решения устарели (например, используя такие Gems, как: likepolymer-rails, emcee и т.д.)

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

4b9b3361

Ответ 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.