0

我有以下代码片段

<%= form_tag :action => 'process_login'%>
   Username: <%= text_field "user", "fullname" %>&#x00A;
   Password: <%= password_field "user", "password" %>&#x00A;
   <%= submit_tag %>
<%= end_form_tag %>

用作登录我的系统的 index.rb 页面。控制器索引函数如下所示

def index    
    @user=MyEmployee.new
    @user.fullname=params[:fullname]
    @user.password=params[:password]
end

错误是

undefined local variable or method `end_form_tag' for #<#<Class:0x5cbe468>:0x5cbcb60>

我应该添加或更改什么以使其正常工作?

更新 这是我的 process_login 函数

def process_login
    if user=MyEmployee.authenticate(params[:fullname])
      session[:id]=user.id
      redirect_to session[:return_to]
    else
      flash[:error]='Login fails, unauthenticated user'
      redirect_to :action => 'login', :fullname=>params[:user][:fullname]
    end
  end
4

1 回答 1

0

您在那里使用非常非常古老的语法。end_form_tag在 Rails 2 中已弃用。

请改用此语法:

<%= form_tag :action => 'process_login' do%>
  Username: <%= text_field "user", "fullname" %>&#x00A;
  Password: <%= password_field "user", "password" %>&#x00A;
  <%= submit_tag %>
<% end %>

您使用的任何指南都end_form_tag非常旧,不应再使用。我建议遵循Rails 教程

于 2012-06-12T05:59:02.290 回答