Forum: Italian Ruby user group Richiamare metodi senza una vista successiva

Posted by Silvio Dell'Oste (silviodel)
on 2011-12-31 12:17
Salve ragazzi...

sempre io...

vorrei richiamare metodi senza una vista successiva... mi spiego
meglio...

ho un oggetto che ha tra le sue variabili di istanza un altro oggetto ma
non posso usare nested...

diciamo che io ho un cliente che ha + qualcosa (giochi, o quel che è...)

quindi avrò l'edit, new e destroy del cliente e lo stesso x game... che
ha un campo client_id...

ora, per associare il gioco al cliente per esempio nella vista edit di
cliente metto il link:

<%= link_to "add games", :action => "new", :controller => "games",
:client_id => @client.id %>

o anche...
<%= link_to "llljjjgjhf games", :action => "index", :controller =>
"games", :client_id => @client.id %>

diciamo che con la new non sarebbe un grande problema dato che creo
nuovi games, ma l'idea è che i games già li ho quindi vado a index...

nella index di game quindi avrò tutti i game con accanto i pulsanti di
edit, show e destroy... ne aggiungo un altro ADD, creando anche il
metodo nel controller sempre di game che dovrebbe essere questo:

 def add
    @game = Game.find(params[:id])
    @game.client_id=params[:client_id]

    respond_to do |format|
      if @game.update_attributes(params[:game])
        format.html { redirect_to(@game, :notice => 'Game was
successfully updated.') }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @game.errors, :status =>
:unprocessable_entity }
      end
    end

  end

ora però c'è un problema... devo per forza avere anche una vista per
ADD? se la risposta è no... come devo fare?

se si... che devo fare?

vi prego rispondete :(
Posted by Silvio Dell'Oste (silviodel)
on 2011-12-31 12:19
in sintesi vorrei sapere se posso chiamare un metodo di un controller 
senza una vista associata...

io dovrei premere ADD e tornare magari allo show di game x aggiungerne 
eventualmente altri...
Posted by Alessandro Mencarini (Guest)
on 2011-12-31 12:38
(Received via mailing list)
Ti basta usare redirect_to o render nell'azione per evitare che Rails 
vada
a cercare la vista di quell'azione. Puoi addirittura provare

render nothing: true

Qua tutte le informazioni:
http://guides.rubyonrails.org/layouts_and_rendering.html

Alessandro
On Dec 31, 2011 12:19 PM, "Silvio Dell&apos;Oste" 
<silviodel@infinito.it>
Posted by Silvio Dell'Oste (silviodel)
on 2011-12-31 15:54
mi sa che non ci sono... in realtà pensandoci bene i link to non fanno 
la vera azione... il problema è che dovrei farlo sui submit... apro 
l'ennesimo post anche se purtroppo non riesco a risolvere :(
Posted by Luigi Maselli - grigio.org (grigio)
on 2012-01-03 22:31
Tieni presente che anche se è un helper ruby, "link_to" appartiene al 
mondo server, se devi fare un controllo sul client (e non ti serve 
chiamare il server) puoi usare tranquillamente jQuery.

Luigi

Silvio Dell'Oste wrote in post #1039000:
> mi sa che non ci sono... in realtà pensandoci bene i link to non fanno
> la vera azione... il problema è che dovrei farlo sui submit... apro
> l'ennesimo post anche se purtroppo non riesco a risolvere :(
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.