无法映射登录后的路由
问题描述:
我是一个初学者ROR程序员,试图构建一个新用户可以注册的应用程序。用户注册成功后,用户可以使用注册的电子邮件和密码进行登录。无法映射登录后的路由
当我填写登录表单后击中登录按钮,它显示了我的错误:
No routes matching "Post".
sessions_controller.rb:
users_controller.rb:
的routes.rb:
root 'users#index'
get "/app/views/users/signup.html.erb", to: "usesrs#new", as:"signup"
post '/users', to: 'users#create'
get '/login', to: 'sessions#new'
post '/login', to: 'sessions#create'
resources :users do
resources :sessions
end
index.html.erb(登录页面):
<div class="container">
<h1 class="col-md-4 col-md-offset-3">Dropbox</h1>
</div>
<div class="container">
<h2 class="col-md-4 col-md-offset-3">Log in</h2>
<div class="col-md-4 col-md-offset-3">
<%= form_for :user do |f| %>
<label>Email</label>
<%= f.email_field :email, class: 'form-control' %>
</div>
<div class="col-md-4 col-md-offset-3">
<label>Password</label>
<%= f.password_field :password, class: 'form-control' %>
</div>
<div class="checkbox, col-md-4 col-md-offset-3">
<input type="checkbox" value="remember-me"> Remember me
</div>
<div class="col-md-4 col-md-offset-3">
<%= f.submit "Log in", class: "btn btn-lg btn-primary btn-block" %>
</div>
<% end %>
<div class="col-md-4 col-md-offset-3">
<a href="/app/views/users/signup.html.erb">Sign up</a>
</div>
</div>
</div>
任何人都可以引导我,什么是错我的代码,我该如何改正它。
答
在form_for
你逝去的:user
,所以轨道会在你form
设置属性action
到User
路线,但你想将数据发送到session#create
,所以你必须指定正确的url
(即"/login"
),这样:
<%= form_for :user, url: "/login" do |f| %>
你可以阅读更多关于form_for
here。
您可以在窗体中添加日志的视图文件吗? – Eoghain
我已将它添加到原始帖子。 – meh12