2013-03-13 33 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