我是初学者ROR程序员,正在尝试构建一个新用户可以注册的应用程序。用户注册成功后,用户可以使用已注册的电子邮件和密码登录。
当我在填写登录表单后点击登录按钮时,它会显示错误:
没有匹配的路线"发布"。
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>
任何人都可以指导我的代码有什么问题,我该如何纠正它。
答案 0 :(得分:0)
在form_for
您正在传递:user
,因此rails会将action
中的属性form
设置为User
路由,但您要发送数据为session#create
,因此您必须指定正确的url
(即"/login"
),如下所示:
<%= form_for :user, url: "/login" do |f| %>
您可以详细了解form_for
here。