我是Ruby on Rails的新手,目前正在做我的第一个项目。然而,我的问题是:
如果用户创建的帐户没有有效的信息,我想向他展示问题所在。
但我的表单没有显示信息。
控制器:
class UsersController < ApplicationController
def userlist
@users = User.all
end
def newuser
@user = User.new
end
def create_new_user
@user = User.new(user_params)
if @user.save
redirect_to users_userlist_path
else
puts @user.errors.full_messages
@user = User.new(user_params)
render 'users/newuser'
end
end
private
def user_params
params.require(:user).permit(:username,:userpw,:email)
end
end
查看:
<%= if @user.errors.any? %>
<div id="error_explanation">
<h1><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h1>
<ul>
<% puts user.full_messages %>
<% @user.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<%= form_for @user, url: { action: "create_new_user" }, namespace: "users" do |f| %>
<div class="mb-3">
<%= f.label :username %>
<%= f.text_field :username %>
</div>
<div class="mb-3">
<%= f.label :password %>
<%= f.text_field :userpw %>
</div>
<div class="mb-3">
<%= f.label :email %>
<%= f.text_field :email %>
</div>
<div class="">
<%= f.submit "Submit", class: "btn btn-primary" %>
</div>
<% end %>
顺便说一下,puts
语句正在工作!
我只获取puts
语句的输出
1条答案
按热度按时间jum4pzuy1#
在控制器中放置后,您将覆盖用户示例:
这将删除以前的验证,从而删 debugging 误。删除该行应该可以解决您的问题