bru*_*077 3 ruby activerecord ruby-on-rails devise
我正在开发一个包含两个部分的应用程序:ruby命令行应用程序和前端的Rails应用程序.
我一直在Ruby应用程序中使用ActiveRecord和Rails模型,通过以下方式单独包含它们:
Dir[File.dirname(__FILE__) + '/../../RailsApp/app/models/*.rb'].each do |file|
filename = File.basename(file, File.extname(file))
require_relative "../../RailsApp/app/models/" + filename
end
Run Code Online (Sandbox Code Playgroud)
并通过手动保存两个几乎相同的Gemfile文件的依赖项(我认为这不是最好的方法)
昨天我将Devise添加到Rails应用程序,现在当ruby应用程序尝试包含用户模型时,将undefined method devise for class <xxxxx>显示该消息.
我在我的ruby应用程序的Gemfile中添加了devise gem,但错误仍在继续.如果我理解正确,Devise是一个Rails引擎,这就是为什么它不是仅仅因为需要gem而被加载.
我读到在另一个应用程序中包含Rails模型的更好方法是通过要求该environment.rb文件,但是当我尝试这个时,我得到了ActionMailer的错误:
undefined method `action_mailer' for #<Rails::Application::Configuration:0xbbb54bc>
Run Code Online (Sandbox Code Playgroud)
如何用设计解决问题?是否有更好的方法将Rails模型包含在另一个应用程序中,而不是我目前使用的那个以避免保留两个gemfiles?谢谢
尽管这种架构必须在不久的将来发生变化,但我们设法通过在ruby应用程序中包含devise及其初始化器来解决这个错误.
# FIXME: Dependency needed in Rails but not in the engine.
require 'devise'
require_relative "../../RailsApp/config/initializers/devise.rb"
#Load all the models
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3507 次 |
| 最近记录: |