为什么我的视图不能呈现所有内容(Ruby on Rails)

epggiuax  于 2023-04-20  发布在  Ruby
关注(0)|答案(1)|浏览(112)

我是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语句的输出

jum4pzuy

jum4pzuy1#

在控制器中放置后,您将覆盖用户示例:

@user = User.new(user_params)

这将删除以前的验证,从而删 debugging 误。删除该行应该可以解决您的问题

相关问题