Отсутствует перемещение модели разработки в общедоступный каталог React.rb

Я пытаюсь использовать Devise с React.rb, поэтому я решил переместить свою пользовательскую модель в общедоступный каталог, чтобы иметь возможность редактировать ее через React, однако я получаю эту ошибку:

ActionView::Template::Error(User.devise(database_authenticatable,registerable,recoverable,rememberable,trackable,validatable) (called class method missing)):
1: <%= react_component @component_name, @render_params, { prerender: !params[:no_prerender] } %>

1 ответ

Решение

Возможно, в вашей пользовательской модели есть некоторые специальные макросы.

например, если ваша пользовательская модель выглядит так:

class User < ActiveRecord::Base

  devise :database_authenticatable, :registerable,
       :recoverable, :rememberable, :trackable, :validatable
  # etc...
end

тогда вам нужно будет убедиться, что вызов devise выполняется только на сервере следующим образом:

class User < ActiveRecord::Base

  unless RUBY_ENGINE=='opal'
    devise :database_authenticatable, :registerable,
       :recoverable, :rememberable, :trackable, :validatable
  end
  # etc...
end

Reactive-Record заглушки и прокси-серверы всех стандартных макросов active-record, таких как scope и assign_to на клиенте. Однако он не знает, что означает метод devise, поэтому оборачиваем его unless RUBY_ENGINE=='opal предотвратит это от вызова на клиенте.

К вашему сведению я добавил проблему https://github.com/catprintlabs/reactive-record/issues/17 к реактивной записи, чтобы покрыть это...

Другие вопросы по тегам