Ruby on rails “会议”;表单中的第一个参数不能包含nil或为空;错误

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.

在为我的网站开发会话功能时,我在会话视图中遇到以下错误

以下是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.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