我试图将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] } %>
答案 0 :(得分:1)
您可能在用户模型中设计了一些特定的宏。
例如,如果您的用户模型如下所示:
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-记录存根和代理所有标准的活动记录宏,如范围,以及客户端上的belongs_to。但是它不知道设计方法的含义,因此将其包装在unless RUBY_ENGINE=='opal
中将阻止在客户端上调用它。
仅供参考我向反应记录添加了问题https://github.com/catprintlabs/reactive-record/issues/17以涵盖此内容......