Sintassi di link_to con parametri

Salve a tutti,

ho una vista che mi visualizza tante righe, una per ogni questionario,
selezionandone una vorrei lanciare una nuova prova (test) ma ho bisogno
anche di un parametro (@questionnaire.id) e non trovo la sintassi giusta
per passarlo e poi rileggerlo… qualche suggerimento?

<% for @questionnaire in @questionnaires %>


  • - <%= @questionnaire.denomination.upcase %>

    link_to “svolgi”, new_test_path ???
    end %>

  • <% end %>

    Dipende da come hai impostato le routes. Di default (restful routes)
    /new non si aspetta nulla quindi devi passare una hash:
    link_to “svolgi”, new_test_path(:id => questionnaire.id)

    Se passi il valore direttamente non lo capirebbe:
    ruby-1.8.7-p334 :004 > new_admin_taxonomy_path(23)
    => “/admin/taxonomies/new.23”
    ruby-1.8.7-p334 :005 > new_admin_taxonomy_path(:id => 23)
    => “/admin/taxonomies/new?id=23”
    ma certe routes invece capiscono:
    ruby-1.8.7-p334 :006 > edit_admin_product_group_path(23)
    => "/admin/product_groups/23/edit

    Dipende se si aspettano parametri o meno. Se lanci rake routes lo vedi
    subito, esempio:
    new_admin_taxonomy GET /admin/taxonomies/new(.:format)
    {:action=>“new”,
    :controller=>“admin/taxonomies”}
    per questo quando passi 23 viene interpretato come :format e diventa
    new.23
    edit_admin_product_group GET
    /admin/product_groups/:id/edit(.:format)
    {:action=>“edit”, :controller=>“admin/product_groups”}
    invece avendo :id ti permette di passare la variabile direttamente…
    spero sia chiara come spiegazione.

    Ah, togli @questionnaire non ti serve una instance variable li,
    lasciala semplicemente questionnaire

    <% for questionnaire in @questionnaires %>

  • - <%= questionnaire.denomination.upcase %> ... link_to "svolgi", new_test_path(:id => questionnaire.id) end %>
  • <% end %>

    il valore sara’ poi accessibile da params[:id] nella action

    ceo

    2011/8/4 mr ma [email protected]:

    ...
    

    http://lists.ruby-it.org/mailman/listinfo/ml


    Enrico T.
    IT consultant, accessible web sites and web applications
    currently working @ http://www.redant.com.au
    Sydney, NSW, Australia
    [email protected]
    mobile (AU) +00610416748450

    link_to “svolgi”, new_test_path(:id => questionnaire.id)

    il valore sara’ poi accessibile da params[:id] nella action

    Enrico T.

    GRAZIE INFINITE Enrico, ci giravo intorno ma non trovavo la sintassi
    giusta… Salutami Sidney, non è che avete bisogno di un prof di
    matematica? :wink:
    Buona giornata, Marco