2010-12-14 5 views
0

ich folgendes Problem mit:Devise, Gurken und mehr IDs beim Login - Registrierung

ich ein Login-Formular auf meiner gesamten Website (siehe https://github.com/plataformatec/devise/wiki/How-To:-Display-a-custom-sign_in-form-anywhere-in-your-app):

# application.html.haml 
... 
= form_tag new_user_session_path do 
    = text_field_tag 'user[email]' 
    = password_field_tag 'user[password]' 
    %button Login 

Ich mag Test mit Gurke meines Anmeldeformular ausfüllen:

# register#new.html.haml 
= semantic_form_for resource, :url => registration_path(resource_name) do |f| 
    = f.inputs do 
    = f.input :email, :required => true 
    = f.input :password, :required => true 
    = f.input :password_confirmation, :required => true 
    = commit_button("Registrierung absenden") 

Aber jetzt gibt es ein Problem - es gibt zwei Felder auf meiner Seite mit der gleichen Attribut-ID: user_email

Wenn ich versuche, das Anmeldeformular ausfüllen mit

# registration_steps.rb 
When /^I fill in registration data$/ do |param| 
    # this one selects the wrong form - loginform instead of registration form 
    fill_in("user_email", :with => "blabla") 
end 

das Attribut-IDs der Felder sind die gleiche und „fill_in“ die falsche Eingabe wählt ...

Wie kann ich die IDs ändern mit der Arbeit arbeiten? Scheint zu viel komplex für mich ..

Habe ich mein Problem richtig aufgezeigt?

UPDATE

Dies ist ein Teil meiner gemachten Registrierungsseite ist:

<html> 
.... 
<!-- you see that both forms contain fields with the same ids! --> 
<!-- so when i test f.e. with fill_in("user_login", :with => "123") 
    then the wrong form will be filled out! --> 
<form accept-charset="UTF-8" action="https://stackoverflow.com/users/sign_in" method="post"> 
    <input id="user_login" name="user[login]" size="30" type="text" /> 
    <input id="user_password" name="user[password]" size="30" type="password" /> 
    <input type="submit" value="anmelden" name="commit"> 
</form> 
... 
<form accept-charset="UTF-8" action="https://stackoverflow.com/users/sign_in" method="post"> 
    <input id="user_login" name="user[login]" size="30" type="text" /> 
    <input id="user_password" name="user[password]" size="30" type="password" /> 
    <input type="submit" value="anmelden" name="commit"> 
</form> 
... 
</html> 
+0

Ausgabe von ' Debug-Parameter "hilft Ihnen, Ihre Frage besser zu verstehen. – Zabba

+0

Mein Beitrag wurde aktualisiert. – Lichtamberg

Antwort

0

das Problem gelöst mit with_scope mit ("123")

with_scope("#user_new_form") do 
    fill_in("user_email", :with => "123") 
end 
Verwandte Themen