我正在開發一個由兩部分組成的應用程序:一個ruby命令行應用程序和一個用於前端的Rails應用程序。在Rails中包含用戶模型時未定義的方法'devise'
我一直在使用ActiveRecord和Rails車型在Ruby應用程序包括通過其個人方式如下:
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
而且通過手動mantaining兩個幾乎相同的Gemfile文件的依賴關係(的做法,我認爲是不是最好的)
昨天我添加了Devise到Rails應用程序,現在當ruby應用程序試圖包含用戶模型時,出現消息undefined method devise for class <xxxxx>
。
我在我的紅寶石應用程序的Gemfile中添加了設計寶石,但錯誤仍在繼續。如果我理解正確,Devise是一個Rails引擎,這就是爲什麼它不僅僅是通過需要寶石加載。
,我讀了一個更好的方法,包括Rails的模型內的另一個應用是通過要求environment.rb
文件,但是當我試過了,我得到的ActionMailer一個錯誤:
undefined method `action_mailer' for #<Rails::Application::Configuration:0xbbb54bc>
我該如何解決這個問題與設計?有沒有更好的方法來將Rails模型包含在另一個應用程序中,而不是我目前用來避免保留兩個gemfiles的應用程序?謝謝
謝謝你的迴應。我們都同意這種架構必須在不久的將來改變,以便更正交。 Upvote將關於將通用功能移至單獨的寶石的建議。現在我通過要求設計和它的初始化器來解決這個問題。 – bruno077