Domanda

sul mio sito web voglio avere form di login / registrazione nella finestra modale fatto utilizzando Facebox (jQuery plugin). Che cosa è meglio:

  1. Creare vista con un metodo e modello che ha forma e si riferiscono Facebox questo punto di vista.
  2. Crea file HTML statico nella directory pubblica e fare riferimento Facebox a questa pagina statica.

Quello che voglio ottenere è:

  • Facile verifica (come "nome utente già preso", "conferma password non corrisponde password" e cose del genere).
  • Facile inviare e reindirizzamento

Sono nuovo di Rails, so solo su forme di verifica in Django, quindi per Django avrei probabilmente scegliere l'opzione 1, ma potrebbe essere un'altra cosa in Ruby.

È stato utile?

Soluzione

Se si desidera che la verifica per tornare alla pagina di registrazione, si dovrebbe rendere una pagina dinamica.

L'altro problema con una pagina statica nella directory pubblica è che il vostro link diventiamo tutti hardcoded, quindi se l'applicazione sempre vive la radice del dominio (cioè example.com/app) i link a quel file statici potrebbe essere sbagliato.

Inoltre, se hai bisogno di spostare le immagini su un host diverso, si perdono i vantaggi della image_tag.

Solo utilizzare le risorse statiche se sai le cose non cambieranno ed hai bisogno di velocità. Se le pagine dinamiche sono troppo lenti, è possibile memorizzare nella cache, o si potrebbe fare qualcosa di sbagliato.

UPDATE: (per affrontare il primo commento)

Non è possibile utilizzare le funzioni di rotaie per costruire gli URL quando si è nella cartella pubblica. Se avete bisogno di rotaie URL generati in javascript, grilletto loro da un rotaie visualizzare la pagina. In generale, farò il seguente:

In application.html.erb nel tag head:

<%= yield :headScripting %>

Poi, nella pagina di visualizzazione che sta provocando il javascript:

<% content_for :headScripting do %>
    jQuery().ready(function() {
        jQuery("#placeholder").load("<%= summary_model_path(@model) %>");
    });
<% end %>

Che sarebbe caricare il testo di sintesi dal summary modello di azione del controller. Ciò probabilmente render :text => "summary" o render :layout => false a seconda delle esigenze

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top