उदाहरण के लिए, मेरे पास Organizations नाम का एक नियंत्रक है, जिसमें बुनियादी CRUD क्रियाएं और सभी क्रियाएं respond_to JS शामिल हैं, इसलिए मैंने शुरुआत में respond_to ब्लॉक लिखा था नियंत्रक के respond_to :js, { only: %i[index destroy create] } और अब इन सभी कार्यों के लिए एक सामान्य JS प्रस्तुत करना चाहते हैं अर्थात सभी क्रिया विशिष्ट JS के बजाय सभी कार्यों पर index.js.erb प्रस्तुत करना चाहते हैं। तो इसका समाधान क्या हो सकता है?

0
Hunny Jummani 3 जिंदा 2020, 16:04

1 उत्तर

सबसे बढ़िया उत्तर

आप default_render विधि को ओवरराइड करके निहित प्रतिपादन को ओवरराइड कर सकते हैं। rel="nofollow noreferrer">ActionController::ImplicitRender.

class OrganizationsController < ApplicationController
  def default_render(*args)
    # is there an action specific template?
    if template_exists?(action_name.to_s, _prefixes, variants: request.variant)
      super
    # is there an index template we can use insted?
    elsif template_exists?('index', _prefixes, variants: request.variant) 
      render :index, *args
    # We don't have a template. lets just let the default renderer handle the errors
    else 
      super
    end
  end
  # ...
end
0
max 3 जिंदा 2020, 15:01