2017-06-21 51 views
1

我怎么能当有人留下空格空的等错误通知...如何在此红宝石表单中发出错误通知?

我试过枚举代码,他们要么没有工作或失败......我什至安装了宝石,但没有任何工作,直到现在。

class UsersController < ApplicationController 

    def new 
    end 

    def create 
    user = User.new(user_params) 
    if user.save 
     session[:user_id] = user.id 
     redirect_to '/' 
    else 
    flash[:error] = 'invalid value' 

    end 
    end 

private 

    def user_params 
    params.require(:user).permit(:NumeroEmpregado, :nome, :password, :password_confirmation) 
    end 
end 
+2

我建议你生成一个支架和查看表单是如何工作的。看到这个链接http://guides.rubyonrails.org/active_record_validations.html#displaying-validation-errors-in-views显示验证错误: –

+0

半主题,但你应该修复你的缩进和对齐'div'/'形式'块。 '<% end %>'应该放在3行 - 如果你正确地缩进代码,这个错误就会很明显。 –

+0

完成@TomLord感谢您的观察 –

回答

0

可以使用Active Record Validations:..请与想法/解决方案

<div class="jumbotron" 
    <div class="container"> 

    <h2>Signup</h2> 


<%= form_for :user, url: '/users' do |f| %> 
    Número de Empregado: <br> 
    <%= f.number_field :NumeroEmpregado %><br> 
    Primeiro e Último Nome: <br> 
    <%= f.text_field :nome %><br> 
    Password: <br> 
    <%= f.password_field :password %><br> 
    Confirmação Password: <br> 
    <%= f.password_field :password_confirmation %><br> 


    <%= f.submit "Submit" %> 

    </div> 
</div> 

<% end %> 

控制器帮助。

如果你有一个模型叫用户,那么你可以指定哪些属性使用validates方法和设置presencetrue来验证存在,这将检查表单上的字段已被填补,如果有也只有空格。

例如:

class User < ApplicationRecord 
    validates :nome, presence: true 
    ... 

为了您的控制器:

def create 
    user = User.new(user_params) 
    if user.save 
    session[:user_id] = user.id 
    redirect_to '/' 
    else 
    flash[:error] = 'invalid value' 
    redirect_to new_user_path 
    end 
end 

重定向到具有flash[:error]为 “无效值” 的新用户路径。

对于您的观点:

<% if flash[:error] %> 
    <div class="error"> 
    <%= flash[:error] %> 
    </div> 
<% end %> 
+0

我已经完成了一个def user_params,它检查是否引用了所有4件事情,我只是想在您不需要时发出通知! 我喜欢这个atm:'else redirect_to'/ signup' end' –

+0

将您的控制器添加到问题中。 –

+0

完成它!你现在可以检查 –

4
  • Rails在提交表格只能验证。在这种情况下,您可以检出this guide
  • 在其他情况下,如果您希望在用户输入时立即显示验证消息,则必须使用Javascript对其进行验证。你也可以使用Jquery validation plugin来做到这一点。

希望它帮助:)

1

如果要检查该字段为空类型验证之前提交https://jqueryvalidation.org/documentation/请点击此链接,你应该使用jQuery的验证。

或者,如果你确认提交的字段是确定的,那么在控制器的创建或更新操作中,你可以从参数中检查该字段是否为空。那么你就可以显示提示信息像这样

flash[:notice] = 'valid value' 
flash[:error] = 'invalid value' 

也可以添加模型级验证对域http://guides.rubyonrails.org/active_record_validations.html这里

+0

我这样做: 'DEF创建 用户= User.new(user_params) 如果user.save 会话[:USER_ID] = user.id redirect_to的 '/' 别的 闪光[:错误] =“无效值“ 结束 end' 得到这个错误:'未找到UsersController#创建模板,使头:no_content' –

+0

DEF创建 用户= User.new(user_params) 如果user.save 会话[:USER_ID] = user.id redirect_to root_path,注意:'有效值' 其他 flash [:error] ='无效值' redirect_to操作:“新” 结束 结束 您忘记在您的其他部分提及重定向路径 –