0
我遵循RailsSpace教程。我的錯誤表單總是顯示。它永遠在線!我不知道如何讓它消失。我知道使用@ user.errors.clear實際上會清除消息。我試圖在視圖中使用它,但不會顯示任何錯誤消息。我感謝您的幫助。如何僅在生成實際錯誤消息時才顯示錯誤消息表單
以下是錯誤格式代碼:
<% if @user.errors.any? %>
<div id="errorExplanation">
<h2>Please fix the following <%= pluralize(@user.errors.count, "error") %>:</h2>
<ul>
<% @user.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
這裏是我的控制器:
class UserController < ApplicationController
def index
@title = "NubeMart Hub!"
end
def register
@user = User.new
@title = "Register"
if request.post?
@user = User.create(ad_params)
end
if @user.save
flash[:notice]="User #{@user.screen_name} created!"
redirect_to :action=>"index"
end
end
def ad_params
params.require(:user).permit(:screen_name, :email, :password)
end
end
這是我的觀點:
<h2>Register</h2>
<%= form_for :user do |form| %>
<%= render "shared/form_errors", :user => @user %>
<fieldset>
<legend>Enter Your Details</legend>
<div class="form_row">
<label for="screen_name">Screen name:</label>
<%= form.text_field :screen_name,
:size => User::SCREEN_NAME_SIZE,
:maxlength => User::SCREEN_NAME_MAX_LENGTH %>
</div>
<div class="form_row">
<label for="email">Email:</label>
<%= form.text_field :email,
:size => User::EMAIL_SIZE,
:maxlength => User::EMAIL_MAX_LENGTH %>
</div>
<div class="form_row">
<label for="password">Password:</label>
<%= form.password_field :password,
:size => User::PASSWORD_SIZE,
:maxlength => User::PASSWORD_MAX_LENGTH %>
</div>
<div class="form_row">
<%= submit_tag "Register!", :class => "submit" %>
</div>
</fieldset>
<% end %>
它的工作原理!謝謝你指出我的錯誤。 – salvador69g