我试图在React.rb中使用Devise,所以我想将我的用户模型移到公共目录中,以便能够通过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] } %>发布于 2016-02-24 19:42:35
您可能在用户模型中设计了一些特定的宏。
例如,如果用户模型如下所示:
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反应性记录存根和代理所有标准的活动记录宏(如scope )和客户机上的belongs_to。但是,它不知道doesn方法的含义,因此将其封装在unless RUBY_ENGINE=='opal中将防止在客户端上调用该方法。
我在反应记录中添加了一个问题https://github.com/catprintlabs/reactive-record/issues/17来报道这件事.
https://stackoverflow.com/questions/35591707
复制相似问题