2013-01-07 135 views
0

首先我对rails非常陌生 - 我在玩一个小小的登录应用程序,让它工作并决定尝试简单的表单 - 但是无法获取我的日志与宝石一起工作。simple_form登录问题

这是我的工作,

<h2>Log In</h2> 

<%= form_tag sessions_path do %> 

    <div class="field"> 
    <%= label_tag :email %> 
    <%= text_field_tag :email, params[:email] %> 
    </div> 

    <div class="field"> 
    <%= label_tag :password %> 
    <%= password_field_tag :password %> 
    </div> 

    <p><%= link_to "Forgotten Password?", new_password_reset_path %></p> 

    <div class="field"> 
    <%= check_box_tag :remember_me, 1, params[:remember_me] %> 
    <%= label_tag :remember_me %> 
    </div> 

    <div class="actions"><%= submit_tag "Log In" %></div> 

<% end %> 

这里就是我试图将其更改为用简单的形式。

<h2>Log In</h2> 

<%= simple_form_for :sessions, :url => sessions_path, :html => { :class => 'form-vertical' } do |f| %> 

    <%= f.input :email, :required =>false, :label => 'Email Address',:placeholder => 'Email Address' %> 

    <%= f.input :password, :required =>false, :label => 'Password',:placeholder => 'Password' %> 

    <label class="checkbox"> 
    <%= check_box_tag :remember_me, 1, params[:remember_me] %> 
    Remember me 
    </label> 

    <p> 
    <%= link_to "Forgotten Password?", new_password_reset_path %> 
    </p> 


    <%= f.button :submit "Login" %> 

<% end %> 

这似乎是工作好,直到我尝试登录 - 当我登录它总是显示我的无效的用户名和密码信息 - 我想不通我要去哪里错在这里。任何帮助将非常感激!

谢谢!

回答

1

明白了!非常感谢Zabba指引我朝着正确的方向前进;

我的第二种方法有效;

<%= simple_form_for :sessions, :url => sessions_path, :html => { :class => 'form-vertical' } do |f| %> 

     <%= f.input :email, :required =>false, :label => 'Email Address',:placeholder => 'Email Address' %> 

     <%= f.input :password, :required =>false, :label => 'Password',:placeholder => 'Password' %> 

     <label class="checkbox"> 
     <%= check_box_tag :remember_me, 1, params[:remember_me] %> 
     Remember me 
     </label> 

     <p> 
     <%= link_to "Forgotten Password?", new_password_reset_path %> 
     </p> 


     <%= f.button :submit "Login" %> 

    <% end %> 

但是我没有更新我的控制器,以便在那里我有;

def create 
    user = User.find_by_email(params[:email]) 
    if user && user.authenticate(params[:password]) 
     ... 
    end 

我不得不更新到;

def create 
    user = User.find_by_email(params[:sessions][:email]) 
    if user && user.authenticate(params[:sessions][:password]) 
     ... 
    end 

谢谢Zabba!

2

在案例1中,你可能收到PARAMS:{ :email => '...', ....},并在情况2,:sessions => { :email => '...', ....}

检查params.inspect

+0

我把它作为<%= simple_form_for sessions_path,:html => {:class =>'form-vertical'} do | f | %> ---但得到了错误路由错误 没有路由匹配[邮政]“/登录” - 任何建议? – Jamie

+0

得到它的工作!感谢您的正确方向@Zabba - 如果有兴趣的人,我会在8小时内发布答案,当它允许我! :) – Jamie