Ruby on rails “会议”;表单中的第一个参数不能包含nil或为空;错误
在为我的网站开发会话功能时,我在会话视图中遇到以下错误 以下是my sessions controller的以下代码:Ruby on rails “会议”;表单中的第一个参数不能包含nil或为空;错误,ruby-on-rails,forms,null,Ruby On Rails,Forms,Null,在为我的网站开发会话功能时,我在会话视图中遇到以下错误 以下是my sessions controller的以下代码: class SessionsController < ApplicationController def new @user = User.new end def create @user = User.find_by(email: params[:user][:email]) if @user && @user.
class SessionsController < ApplicationController
def new
@user = User.new
end
def create
@user = User.find_by(email: params[:user][:email])
if @user && @user.authenticate(params[:user][:password])
session[:user_id] = @user.id
redirect_to @user
else
flash[:notice] = "Failed to login, please try again"
render 'new'
end
end
def destroy
session[:user_id] = nil
redirect_to root_url
end
end
至于意见方面:
<h1>Log In</h1>
<%= form_for(@user, url: login_path) do |f|%>
<% if flash[:notice] %>
<div class="notice"><%= flash[:notice] %></div>
<% end %>
<%= f.label :email %>
<%= f.text_field :email%><br>
<%= f.label :password %>
<%= f.password_field :password%><br>
<%= f.submit "Log In", class: "btn btn-primary", style: "width: 200px" %>
<%end%>
登录
我的用户注册路径工作正常,正在创建用户类的实例。当用户填写登录表单并点击submit按钮时会发生错误,然后submit按钮会将他们重定向到他们的配置文件。谢谢你的帮助 改变这一点:
<%= form_for(@user = User.new , url: login_path) do |f|%>
更改此选项:
<%= form_for(@user = User.new , url: login_path) do |f|%>
类会话控制器<应用程序控制器
def创建
@user=user.find_by(email:params[:user][:email])
@user=user.new如果@user.blank?
##你剩下的逻辑就在这里
结束
结束
希望能有帮助 class sessioncontroller
希望能有帮助 谢谢大家!!这就解决了:)谢谢!这就解决了它:)如果你可以添加一个简短的解释,说明为什么你的建议应该解决问题,从而增加你的贡献对网站的价值。如果你可以添加一个简短的解释,说明为什么你的建议应该解决问题,从而增加你的贡献对网站的价值。
class SessionsController < ApplicationController
def create
@user = User.find_by(email: params[:user][:email])
@user = User.new if @user.blank?
##rest of your logic comes here
end
end