Ciao a tutti,
se state lavorando con rest, vi consiglio caldaemente di vedervi questo
screencast:
Ho provato varie alternative ma alla fine mi sono appoggiato a questo
plugin e lo sto utilizzando alla grande…
Ho solo un dubbio, io oggi scrivo lo stesso identico codice in tutti i
controller es.:
class CompaniesController < ApplicationController
make_resourceful do
actions :all
response_for :show, :new do |format|
format.html
format.xml { render :xml => current_object.to_xml }
end
response_for :index do |format|
format.html
format.xml { render :xml => current_objects.to_xml }
end
response_for :create, :update do |format|
format.html { redirect_to objects_path }
format.xml { head :ok }
end
response_for :create_fails, :update_fails do |format|
format.html { render :action => 'new' }
format.xml { render :xml => current_object.errors, :status =>
:unprocessable_entity }
end
response_for :destroy do |format|
format.html { redirect_to objects_path }
format.xml { head :ok }
end
end
end
poi altro controller con dentro lo stesso codice identico, l’unica cosa
che cambia è il belongs_to che indica a SitesController che è figlio di
Company:
class SitesController < ApplicationController
make_resourceful do
actions :all
belongs_to :company
response_for :show, :new do |format|
format.html
format.xml { render :xml => current_object.to_xml }
end
response_for :index do |format|
format.html
format.xml { render :xml => current_objects.to_xml }
end
response_for :create, :update do |format|
format.html { redirect_to objects_path }
format.xml { head :ok }
end
response_for :create_fails, :update_fails do |format|
format.html { render :action => 'new' }
format.xml { render :xml => current_object.errors, :status =>
:unprocessable_entity }
end
response_for :destroy do |format|
format.html { redirect_to objects_path }
format.xml { head :ok }
end
end
end
Alla faccia del DRY !!!
Ho provato a creare un controller di base (BaseController) in cui metto
il metodo make_resourceful con tutte le sue direttive e poi
CompaniesController che estende BaseController ma non ci riesco, in
CompaniesController ottengo il seguente errore:
NoMethodError (undefined method `make_resourceful’ for
BaseController:Class):
|app/controllers/base_controller.rb:7|
|app/controllers/companies_controller.rb:1|
||
Qualche idea ?
||
PS: sto facendo una discreta esperienza su Rest / nested resources,
aiuto volentieri se ne avete bisogno…
||