Я создаю приложение, используя гем react-rails. Это означает, что все ресурсы проходят через конвейер ресурсов rails. Чтобы получить доступ к сторонним библиотекам javascript, я использовал rails-assets.org, который объединяет пакеты javascript из Bower в вашу среду rails. Большинство пакетов можно просто вызвать непосредственно в коде javascript.
Поэтому, если вы добавляете пакет, возьмите markdown библиотеку уценки, вы включаете ее следующим образом:
gem 'rails-assets-marked', source: 'https://rails-assets.org'
А затем можете легко вызвать его из любого файла js в вашем приложении rails, например:
console.log(marked('I am using __markdown__.'));
Однако как использовать пакеты, которые не являются функциями, а являются реактивными компонентами? В приложении node вы должны использовать require(), как показано ниже. Вот пример с react-clipboard:
var Clipboard = require("react-clipboard");
var App = React.createClass({
render: function() {
return (
<div>
<Clipboard value='some value' onCopy={some function} />
</div>
);
},
Но что вы делаете, чтобы добиться этого в приложении Rails?
Несмотря на то, что пакет включен в конвейер ресурсов rails, компонент React Clipboard недоступен в JSX. Как сделать его доступным?