2012-04-04 4 views
1

Ich weiß, ich bin ein Neuling in Rails, aber das ist der zweite Tag, den ich wegen diesem verschwenden werde. Könnte mir jemand helfen, herauszufinden, was ich falsch mache?Fancybox Formulare in Rails funktionieren nicht richtig

Ich möchte, dass sich mein Benutzer von der Startseite aus registriert. Klicken Sie auf "Registrieren" und eine Fancybox erscheint mit zwei Tabs in der Box, da sie zwischen zwei verschiedenen Registrierungsformen wählen können. Alles ist richtig eingestellt, denn die Fancybox erscheint aber da drin eine Fehlermeldung.

Im Startseite:

<ul class='nav pull-right'> 
    <%= render 'devise/menu/registration_items' %> 
</ul> 

In registration_items:

<% if society_signed_in? %> 
    <li> 
    <%= link_to('Edit registration', edit_society_registration_path) %> 
    </li> 
<% else %> 
    <li> 
    <%= link_to('Register', regist_setup_path) %> 
    </li> 
<% end %> 

Dann im Setup:

<div class="fancybox"> 
    <h2>Sign up</h2> 

    <ul class="nav nav-tabs"> 
    <li class="active"><a data-toggle="tab" href="#society">Society</a></li> 
    <li><a data-toggle="tab" href="#collaborator">Collaborator</a></li> 
    </ul> 

    <div class="tab-content"> 
    <div class="tab-pane active" id="society"> 
     <%= render :partial => 'societies/form' %> 
    </div> 
    <div class="tab-pane" id="collaborator">Collaborator 
     <%= render :partial => 'collaborators/form' %> 
    </div> 
    </div> 
</div> 

Die beiden machen: Teil zeigen nur die Formen korrekt.
Dann JQuery im application.js nach allen // = erfordern blablabla.js

$(document).ready(function() { 
    $(".fancybox").fancybox(); 
}); 

I @society = Society.new und @collaborator = Collaborator.new in meiner Anwendung Controller zu setzen versucht, aber es immer noch nicht

EDIT funktioniert:
Was geschehen ist, ich auf dem Register Schaltfläche klicken, wird die Setup-Seite angezeigt wird, und wenn ich auf jedem Registerkarte klicken, wird das Feld erscheint mit:
der angeforderte Inhalt nicht geladen werden kann. Bitte versuchen Sie es später erneut. Fehlermeldung

+0

Was ist der Fehler, den Sie sehen? – tybro0103

+0

Nur bearbeitet, um zu erklären, – Barbared

+0

Meine Vermutung ist, dass Sie die Ivars zu den Partials über einen lokalen Hash übergeben müssen. – Brian

Antwort

4

Ich glaube nicht, dass dies Schienen ist - Fancybox und andere Javascript-Plugins wie diese an ein Link-Element, so dass wenn sie angeklickt sind, wird es den Inhalt basierend auf der href von laden der Link.

Ihre jquery Aufruf sollte (in Fenster Last) sein

$(document).ready(function() { 
    $("a.fancybox").fancybox(); 
}); 

Also ich denke, Sie dies wünschen würde:

<%= link_to('Register', "#popup-signup", :class=>"fancybox") %> 

Dann wird der Inhalt im Popup:

<div id="#popup-signup"> 
    <h2>Sign up</h2> 
    ..more stuff here 
+0

Ich vermute du meintest '$ (" a.fancybox "). Fancybox();' das bindet den (Link) Selektor an fancybox. – JFK

+0

@JFK Ja, du hast Recht, aktualisiert –

+0

Das hat tatsächlich funktioniert. Der Nesting-Code verwirrte mich. Ich habe gerade das Attribut: class in der Methode link_to hinzugefügt und es hat funktioniert. Danke – Barbared