Se si desidera che le funzioni vengano chiamate all'interno dei controller, dove dovrei inserirle?Rails 3: Funzioni di chiamata all'interno dei controller
risposta
se si desidera che sia locale per un controller, tutto ciò che è necessario fare è aggiungerlo al controller che si desidera utilizzare.
private
def myfunction
function code.....
end
a tutti i controller è possibile inserirli nel controller dell'applicazione, poiché tutti i controllori sono sottoclassificati.
ApplicationController
protected
def myfunction
function code.....
end
se si vuole accedere a vostro punto di vista quindi è possibile creare un aiutante
ApplicationHelper
def myfunction
function code...
end
class YourController < ActionController::Base
def your_action
your_function
end
private
def your_function
end
end
un'occhiata anche a before_filter
e after_filter
, sono spesso utili in questo tipo di cose
L'ApplicationController è qui per questo, dal momento che ogni controller ereditato da esso.
@jonnii, per esempio, voglio chiamare un funzione che restituisce un codice univoco generato.
Se il codice generato sta per essere utilizzato solo sulle tue controller, mettere la funzione all'interno di un controllore, come funzione protetta (il modo più semplice sarebbe stata messa dentro ApplicationController).
Se è necessario chiamare la funzione su visualizzazioni, quindi metterlo su un helper, come dice Ddayan.
Se è anche necessario richiamare la funzione dai modelli , il modo più semplice per farlo è inserendo un modulo nella directory/lib /.
# /lib/my_module.rb
module MyModule
def generate_code
1
end
end
Sarà inoltre necessario includere con un inizializzatore:
#/config/initializers/my_module.rb
require 'my_module'
Da quel momento in poi, è possibile utilizzare la funzione in questo modo:
MyModule::generate_code
Se si sta facendo questo molto spesso, considera la possibilità di creare una gemma.
- 1. RAILS 3 - Transazioni nei controller
- 2. Rails 3 URL senza nome controller
- 3. Gestione jsonp in rails 3 controller
- 4. Rails 3: Parametri controller valore predefinito
- 5. Rails 3 - Troncare in un controller?
- 6. Chiamare le funzioni javascript dalla vista in Rails 3
- 7. Come testare il controller dell'applicazione prima dei metodi di filtraggio in Rails 3?
- 8. Rails 3: Ottieni lo spazio dei nomi corrente?
- 9. Rails 3 has_one instradamento
- 10. Come si indirizza un'azione al controller dell'applicazione in Rails 3?
- 11. Rails 3 collegamento o pulsante che esegue l'azione nel controller
- 12. Chiamare il metodo helper dal controller Rails 3
- 13. Funzioni di chiamata in SqlCommand
- 14. Rails 3 Modulo di azione personalizzata
- 15. Rails 2 to Rails 3, la verifica del metodo nei controller è andata?
- 16. Chiamata all'azione Rails da JavaScript
- 17. Rails 3 Problemi di root route?
- 18. Rails 3 Raccomandazione CMS
- 19. HTML5 Video and Rails 3
- 20. Rails 3 & validate_on_create
- 21. Rails 3 parametri involucro indesiderato
- 22. Rails 3 respond_with template personalizzato
- 23. Concatenazione di stringhe in Rails 3
- 24. Chiamata di funzioni all'interno di template Vue.js
- 25. Rails 4 equivalenti di Rails 3 'Model.all'
- 26. Funzioni membro di chiamata F # nel costruttore
- 27. Rails 3: disabilita i cookie di sessione
- 28. jeditable and rails 3
- 29. funzioni di chiamata sopra la loro dichiarazione
- 30. Plugin di feedback per Rails 3
Si prega di dare maggiori informazioni, vuoi che sia disponibile per tutti i controller? – ddayan
Che tipo di funzioni? – jonnii
@ddayan, sì a tutti i controller ma sarei felice di sapere come limitare a un controller. – donald