2012-03-24 12 views
0

Nehmen wir an, bevor ein Benutzer die Erstellungsseite eines Modells anzeigen darf, müssen einige Begriffe akzeptiert werden. Der Workflow wäre wie:Schienen akzeptieren Begriffe vor der Erstellung

Benutzer klickt auf „erstellen MODEL“ -> Geholt eine Begriff Seite, bevor er auf annehmen müssen -> Modellerstellung Seite

Wenn ein Benutzer kopiert die URL der Seite zur Erstellung, Sie sollten auf die Terms-Seite umgeleitet werden.

Wie läuft das am besten ab? Ich dachte daran, die session Variable irgendwie zu benutzen ... aber ich kann nicht an eine schlaue Idee denken. Irgendwelche Vorschläge?

Antwort

1

Sie die folgenden Routen haben:

get 'terms' => 'MODEL#terms' 
get 'new' => 'MODEL#terms' 
post 'new' => 'MODEL#new' 

Das "Modell erstellen", um eine GET-Anforderung für/terms senden soll. Akzeptieren der Bedingungen sollte nach/neu POST. Wenn der Benutzer die URL in die URL einfügt/neu hinzufügt, wird er stattdessen auf Begriffe verwiesen.

Alternativ (oder zusätzlich) können Sie die/Begriffe POST eine Variable haben, :terms_accepted => true auf der Seite MODELL-Erstellung, und auf dieser Seite, überprüfen Sie if :terms_accepted == true. Wenn nicht, umleiten Sie auf die Terms-Seite.

+0

Das ist genau das, was ich gesucht habe. – vinceh

1

Sie können die Akzeptanz der Begriffe dem Modell selbst hinzufügen, dann benötigen Sie keine Konstruktion mit einer zusätzlichen Seite und Weiterleitung, wenn jemand an der falschen Stelle eintritt. Stattdessen kann der Benutzer das Formular nur zur Erstellung einreichen, wenn er die Bedingungen akzeptiert.

Sie können Folgendes zum Modell hinzu:

class Model < ActiveRecord::Base 
    validates :terms_of_service, :acceptance => true 
end 

Und dann stellen Sie sicher, dass Sie das Kontrollkästchen für diese in der neuen% {} Modell Form haben.

Siehe auch: http://guides.rubyonrails.org/active_record_validations_callbacks.html#acceptance und Accept terms of use rails

Verwandte Themen