मैं अपने मानक रेल ऐप को एक आरोही इंजन में बदलने की प्रक्रिया में हूं। ऐप एक मानक ब्लॉगिंग ऐप से तुलनीय है और मैं प्रत्येक मॉडल, नियंत्रक और विस्तार योग्य होने के लिए देखना चाहता हूं इसलिए एक माउंटेबल इंजन के लिए मेरी पसंद।रेल माउंटेबल इंजन और एक और इंजन ओवरराइडिंग
मैं जिन रत्नों का उपयोग करता हूं उनमें से एक है डेविस जो कि मैं एक माउंटेबल इंजन के रूप में समझता हूं। इसका उपयोग एक माउंटेबल इंजन के अंदर किया जा सकता है जैसा कि here कहा गया है।
मैं इसे अपने इंजन के भीतर आंशिक रूप से उपयोग करने में सक्षम हूं। सब कुछ कुछ वसीयत नियंत्रक मैं इस तरह ओवरराइड सहित ठीक काम कर रहा है:
# config/routes.rb
Bbronline::Engine.routes.draw do
devise_for :users, class_name: "Bbronline::User", module: :devise,
controllers: { registrations: "bbronline/devise_overrides/registrations"}
...
# controllers/bbronline/devise_overrides/registrations_controller.rb
require_dependency "bbronline/application_controller"
module Bbronline
class DeviseOverrides::RegistrationsController < Devise::RegistrationsController
def new_intermediair
@user = User.new
end
...
सही दृश्य के विचारों/bbronline/devise_overrides/पंजीकरण/new_intermediair.html.haml 'भी सही ढंग से अपेक्षा के अनुरूप लोड कर रहा है।
हालांकि मेरी समस्या यह है कि जिन विचारों को मैं कस्टम नियंत्रक के बिना ओवरराइड करता हूं वे ठीक से लोड नहीं होते हैं। उदाहरण के लिए, दृश्य दृश्य जो views/bbronline/devise/sessions/new.html.haml
में स्थित है और लोड नहीं किया गया है। इसके बजाय मानक डेविस लॉगिन दृश्य लोड हो जाता है i.e. devise-2.1.0/app/views/devise/sessions/new.html.erb
बेशक मैं अपने नियंत्रक के साथ हर नियंत्रक को ओवरराइड करके इस समस्या को हल कर सकता हूं जैसे मैंने रजिस्ट्रेशन_कंट्रोलर के साथ किया था लेकिन यह बहुत बदसूरत लगता है। क्या हर नियंत्रक को ऐसा करने का तरीका ओवरराइड कर रहा है? क्या एक आरोही इंजन से दूसरे माउंटेबल इंजन के भीतर से विचारों को ओवरराइड करने का एक और सुविधाजनक तरीका है?
किसी भी तरह से मैं अपने डमी एप्लिकेशन की कॉन्फ़िगरेशन को बदलने के बिना यह परिवर्तन कर सकता हूं? जब भी मैं अपना मणि लोड करता हूं तो मैं इसे डिफ़ॉल्ट व्यवहार करना पसंद करूंगा। – Ajedi32