将设计模型移动到 React.rb public 目录调用方法丢失

Moving devise model to React.rb public directory calls method missing

我正在尝试将 Devise 与 React.rb 一起使用,所以我想将我的用户模型移动到 public 目录以便能够通过 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] } %>

您的用户模型中可能有一些设计特定的宏。

例如,如果您的用户模型如下所示:

class User < ActiveRecord::Base

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

然后您需要确保设计调用仅在服务器上运行,如下所示:

class User < ActiveRecord::Base

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

Reactive-Record 在客户端存根和代理所有标准的活动记录宏,如作用域和 belongs_to。但是它不知道 devise 方法的含义,因此将其包装在 unless RUBY_ENGINE=='opal 中将防止在客户端调用它。

仅供参考,我在反应记录中添加了一个问题 https://github.com/catprintlabs/reactive-record/issues/17 以涵盖此...