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>

機能させるには何を追加または変更する必要がありますか?

UPDATE そして、ここに私の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_tagRails 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 に答える