2013-03-13 64 views
0

我想在登录表单中执行此操作,
我只是想在用户提交数据时保留数据,但哪些数据无效。在Rails 3中通过form_for传递non-AR 3

下面的代码:

在控制器:

def login 

    if request.request_method == "POST" 
     @session = params[:session] 
    end 

    render "login", 
      :layout => "admin_login" 
end 

admin_login tempaltes:

= form_for :session, :url => { :action => "login", :controller => "administrator" }, :html => { :class => "form-horizontal" } do |f| 

    %div.control-group 
    #{f.label :token, "User/Email", :class => "control-label" } 
    %div.controls 
     #{f.text_field :token} 

    %div.control-group 
    #{f.label :password, "Password", :class => "control-label" } 
    %div.controls 
     #{f.password_field :password} 

但它会抛出一个异常,当我提交表单,说undefined method 'token'

谢谢

+0

你说的'抱怨未定义的方法“token'',但我看到你的'token'场在上面评论码? – 2013-03-13 07:30:28

+0

不可以。他使用haml,以便代码完全有效。 – jvnill 2013-03-13 07:31:07

+0

haml ..我明白了。我不知道这一点。谢谢! – 2013-03-13 07:32:25

回答

0

,如果你不处理与资源,你应该使用form_tag

= form_tag { action: 'login', controller: 'administrator' }, class: 'form-horizontal' do 
    %div.control-group 
    %label.control-label User/Email 

    %div.controls 
     = text_field_tag :token 

    %div.control-group 
    %label.control-label Password 

    %div.controls 
     = password_field_tag :password 
+0

谢谢〜你的意思是,如果不使用Resource for REST,我的做法是不可能的? – 2013-03-13 07:34:15

+0

它应该是'form_tag',但你上面使用了'form_for'? – 2013-03-13 07:35:03

+0

谢谢Saurabh,固定。弗朗西斯,这仍然是可能的,但你应该使用形式助手的'_tag'形式。 – jvnill 2013-03-13 07:36:34