Nel metodo invite_all devo fare delle operazioni sulla collection @categorizations.
Dovrei, quindi, ripopolare @categorizations cosi’ come ho fatto nel
metodo index.
Siccome @categorization ce l’ho gia’ a disposizione nel partial non
posso passarlo al metodo invite_all?
def index
… @categorizations = @q.result(:distinct => true)
…
end
[cut]
Nel metodo invite_all devo fare delle operazioni sulla collection @categorizations.
Dovrei, quindi, ripopolare @categorizations cosi’ come ho fatto nel
metodo index.
[cut]
All’interno di categorizations_controller.rb (se hai usato questa
nomenclatura) potresti inserire un filtro:
Nel metodo invite_all devo fare delle operazioni sulla collection
def set_collection @q = # get q in the way you did for the index @categorizations = @q.result(:distinct => true)
end
in questo modo nelle viste index.html.haml e invite_all.html.haml
avrai a disposizione la variabile d’istanza @categorizations.
def set_collection @q = # get q in the way you did for the index @categorizations = @q.result(:distinct => true)
end
in questo modo nelle viste index.html.haml e invite_all.html.haml
avrai a disposizione la variabile d’istanza @categorizations.
Giusto, grazie.
Invece non funziona, questo perche’ @categorizations viene valorizzato
in base al parametro @q che a sua volta viene valorizzato solo al
sbmit di un form di ricerca, uso ransack.
Quindi @categorization di invite_all non e’ filtrato in base a @q
perche’ set_collection chiamato prima di invite_all non ha valori
dentro @q non essendo valorizzato dal submit del form.
In particolare:
class CategorizationsController < InheritedResources::Base
before_filter :set_collection, only: [:index, :invite_all]
def index @categories = Category.all @services = Service.all
end
Giusto, grazie.
before_filter :set_collection, only: [:index, :invite_all]
end @q = Categorization.not_invited.search(params[:q])
Cioe’ riassegno a :q il suo stesso contenuto, spero non sia una bruttura.
Il problema pero’ e’ che in invite_all il contenuto di @categorization
non e’ quello di quando viene chiamata index, poiche’ viene eseguito
il random, @categorizations = @categorizations.random(@operators_to_be_invited.to_i).
Devo trovare un’altra soluzione quindi, la cosa piu’ logica sarebbe
poter passare @categorization a def invite_all ma visto che mi e’
stato suggerito di usare before_filter immagino non sia possibile.
end
skip_before_filter :set_collection, except: [:index, :invite_all]
@categorizations = @q.result(:distinct => true)
unless @operators_to_be_invited.nil? or @operators_to_be_invited.empty? @categorizations = @categorizations.random(@operators_to_be_invited.to_i)
end
end