2010-03-13 14 views
11

Sto creando un sito Web in Ruby on Rails, in cui gli utenti possono accedere utilizzando l'autenticazione RESTful. Qualcuno può ottenere un utente specifico usando html, xml e json, proprio come lo scaffolding. Ma voglio aggiungere un altro formato: vCard (ad esempio /users/1.vcard). Questo ha un formato specifico, ma come posso definire i miei formati? Usando le viste, o devo usare un altro modo? GrazieFormati personalizzati in Ruby on Rails

risposta

14

Nel file /config/initializers/mime_types.rb, aggiungi una nuova registrazione per il tuo formato. Esso dovrebbe essere simile a questo:

Mime::Type.register "text/x-vcard", :vcard #The :vcard is the important part 

Dopo di che (dovrete riavviare l'app per raccogliere il cambiamento), è possibile rispondere al simbolo come qualsiasi altro formato:

# then in your controller action 
def show 
    respond_to do |format| 
    format.html # render html 
    format.vcard { #render vcard } 
    end 
end 

Aggiunta dai commenti (grazie nanda):

Nella cartella delle visualizzazioni, quindi, si inserisce il modello vCard in un file show.vcard.erb (ad esempio).

+0

Grazie, ma come faccio a renderlo effettivamente? Usando una vista? –

+3

Sì, usando una vista, qualcosa come show.vcard.erb – nanda

+1

@nanda grazie ^^ –