gpt4 book ai didi

ruby-on-rails - 找不到 UsersController#create 的模板,渲染头 :no_content

转载 作者:数据小太阳 更新时间:2023-10-29 08:25:56 25 4
gpt4 key购买 nike

好的,之前我遇到了来自用户#create 的无模板错误的问题,现在它完成了 200 OK 但根本没有重定向。下面是我编辑的 users_controller.rb

我有一个以用户作为资源的注册、登录、注销 Rails 应用程序。我正在尝试将第一个用户保存在数据库中,这样我就可以登录了,但是当我尝试“users#new”和“users#create”时,这个错误是服务器输出,下面是完整的错误,然后是我的 users_controller.rb 和 View /用户 -> new.html.erb

No template found for UsersController#create, rendering head :no_content
Completed 204 No Content in 35ms (ActiveRecord: 0.5ms)

用户 Controller .rb

def new
@user = User.new
end

def create
@user = User.new(user_params)
if (@user = User.find_by_email(params[:email]))
flash[:success] = "User already exists."
if @user.save
session[:user_id] = user.id
flash[:success] = "New User created."
redirect_to '/layouts/application'
else
render 'new'
end
end
end

new.html.erb

<h1>Sign Up</h1>
<%= form_with(model: @user) do |f| %>
<p> Username:</br> <%= f.text_field :username %> </p>
<p> Email:</br> <%= f.text_field :email %> </p>
<p> Password:</br> <%= f.password_field :password%></p>

<%= f.submit "Signup" %>
<% end %>
<% if @user.errors.any? %>
<ul class="Signup_Errors">
<% for message_error in @user.errors.full_messages %>
<li>* <%= message_error %></li>
<% end %>
</ul>
<% end %>
</div>

我必须要有另一个 html.erb 文件吗?我怎么知道那必须是什么?很抱歉这个显而易见的问题,新手。

最佳答案

根据您的代码,如果 User 不存在,它将不会进入 if block 。 Rails 最终会尝试查找 create.html,因为当前操作是 create

要避免这种情况,您必须将它重定向到某处或呈现您在下一个 ifelse 中完成的模板,但它没有执行。

条件是不允许它重定向到任何地方。尝试像这样移动 if block 。

def create
@user = User.new(user_params)
if User.exists?(email: params[:email]) # I think this should be `user_params[:email]` instead of `params[:email]`
flash[:error] = "User already exists."
redirect_to 'whereever/you/want/to/redirect' and return
end
if @user.save
session[:user_id] = user.id
flash[:success] = "New User created."
redirect_to '/layouts/application'
else
render 'new'
end
end

关于ruby-on-rails - 找不到 UsersController#create 的模板,渲染头 :no_content,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49503661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com