Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 登录页面Rails 4.1的UrlGenerationError_Ruby On Rails_Ruby_Ruby On Rails 4_Erb - Fatal编程技术网

Ruby on rails 登录页面Rails 4.1的UrlGenerationError

Ruby on rails 登录页面Rails 4.1的UrlGenerationError,ruby-on-rails,ruby,ruby-on-rails-4,erb,Ruby On Rails,Ruby,Ruby On Rails 4,Erb,我正在尝试创建一个登录页面。我跟在后面。但是,在尝试访问会话/登录页面时,我遇到了以下错误。我使用的是Rails 4.1。我在S.O.上查看了其他类似问题的答案,但我找不到任何相关的答案。这是我的错误: ActionController::UrlGenerationError in Sessions#login No route matches {:action=>"login_attempt", :controller=>"sessions"} 突出显示的行是: <

我正在尝试创建一个登录页面。我跟在后面。但是,在尝试访问会话/登录页面时,我遇到了以下错误。我使用的是Rails 4.1。我在S.O.上查看了其他类似问题的答案,但我找不到任何相关的答案。这是我的错误:

ActionController::UrlGenerationError in Sessions#login
No route matches {:action=>"login_attempt", :controller=>"sessions"}
突出显示的行是:

    <%= form_tag(:action => 'login_attempt') do %>
结束


如有任何想法/帮助,将不胜感激。谢谢。

答案似乎是:动作不再是正确的语法。不得不将其更改为:method

看起来答案是:action不再是正确的语法。必须将其更改为:方法

将您的路线从
登录
更改为
登录尝试
,如果您已经定义了
登录
操作,则添加另一个名为
登录尝试
的路线,将您的路线从
登录
更改为
登录尝试
,如果您已经定义了
login
操作,然后添加另一个名为
login\u trunt

的路由。您可以按照我的建议执行吗?我不在工作电脑上,需要知道解决问题的操作和方法有什么不同,据我所知,我看到一条丢失的路由。解释它,但不确定它是如何向你的控制器发出“获取”请求的……你能按照我的建议做吗,我不在我的工作电脑上,需要知道解决问题的行动和方法有什么不同,据我所知,我看到了一条丢失的路线。解释它,但不确定它是如何向您的控制器发出“get”请求的……是的,这似乎也起到了作用(通过操作)。问题。真正做到这一点的正确方法。谢谢。是的,这似乎也很有效(通过行动)。问题。真正做到这一点的正确方法。非常感谢。
<% @page_title = "Foos-Tracker | Login" -%>
<div class= "Sign_Form">
  <h1>Log in</h1>
  <%= form_tag(:action => 'login_attempt') do %>
    <p>Username or Email:</br> <%= text_field_tag(:username_or_email) %></p>
    <p>Password:</br> <%= password_field_tag :login_password %></p>
    <%= submit_tag("Log In") %>
  <% end %>
</div>
class SessionsController < ApplicationController
  before_filter :authenticate_user, :only => [:home, :profile, :setting]
  before_filter :save_login_state, :only => [:login, :login_attempt]

  def login
    #Login Form
  end

  def login_attempt
    authorized_user = User.authenticate(params[:username_or_email],params[:login_password])
    if authorized_user
      session[:user_id] = authorized_user.id
      flash[:notice] = "Wow Welcome again, you logged in as #{authorized_user.username}"
      redirect_to(:action => 'home')
    else
      flash[:notice] = "Invalid Username or Password"
      flash[:color]= "invalid"
      render "login"
    end
  end

end
Rails.application.routes.draw do
  get 'sessions/login'
  get 'sessions/home'
  get 'sessions/profile'
  get 'sessions/setting'
  get 'welcome/index'
  get 'users/new'

  resources :users

  root 'welcome#index'