如果没有找到emp id,请坚持如何显示错误消息

时间:2015-03-31 11:31:54

标签: javascript ruby-on-rails ruby ruby-on-rails-4

问题是我有一个查询,查看我的emp_id文本框,一旦输入内容,它会搜索与emp_id相关的信息,在我的另一个表中,它会搜索其被调用的ID ..如果emp_id与id匹配在我的视觉模型中,它将填充他们的名字和姓氏。我想知道如果没有emp_id匹配我的可视化模型中的id,我怎么能显示错误....到目前为止,我得到一个nomethod错误为app / controller /中的nil类的名字populate_form,我不知道为什么我的猜测是什么时候它发现没有匹配它认为它是一个零并且什么也不返回..我有点失落任何帮助都将非常感谢!!

这是我的视觉模型

 class Visual < ActiveRecord::Base

 establish_connection :vtest

 self.table_name = 'employee'


 Visual.inheritance_column = 'inheritance_type'

 belongs_to :user

 def emp_matches(x)
   (x.id.to_i == self.id.to_i ? true : false)
 end
end

这是我的用户控制器,其中包含my populate form方法

 class UserController < ApplicationController


   def populate_form

     @visual = Visual.find_by_id(params[:emp_id])

     if @emp_matches == 'False'

       respond_to do |format|

         format.json { render json: @user.errors, status: :unprocessable_entity, flash[:error] => "Error No ID found." }
     end

   else

     @visual = Visual.find_by_id(params[:emp_id])

     @emp_first_name = @visual.first_name

     @emp_last_name = @visual.last_name


      render :json => {

         :emp_first_name => @emp_first_name,
         :emp_last_name => @emp_last_name
      }
  end
end

这是我的观点..

<div class='row form-group'>
   <div class='col-xs-8 col-xs-offset-2 col-sm-6 col-sm-offset-3 col-md-4 col-md-offset-4 col-lg-2 col-lg-offset-5 text-right'>
    <%= f.text_field :emp_id, tabindex: 1, id: 'emp_id', autofocus: true, placeholder: t( 'login_label' ), class: 'form-control' %>
  </div>
</div>

 <div class='row form-group'>
  <div class='col-xs-8 col-xs-offset-2 col-sm-6 col-sm-offset-3 col-md-4 col-md-offset-4 col-lg-2 col-lg-offset-5 text-right'>
    <%= f.text_field :emp_first_name, tabindex: 1, id: 'emp_first_name', autofocus: true, placeholder: t( 'login_label' ), class: 'form-control' %>
   </div>
 </div>

这是我的App.js

 $(document).ready(function(){

   $('#emp_id').change(function() {
         var url = "/user/populate_form?emp_id="+$(this).val();
         $.getJSON(url, function(data) {
           if(!(data.emp_first_name === undefined))
           $('#emp_first_name').val(data.emp_first_name);
           if(!(data.last_name === undefined))
           $('#emp_last_name').val(data.emp_last_name);
         });
       }
     );
   });

我的桌子

视觉模型

      Table is called Employee 
        ID
        emp_first_name

用户模型

      Table is called User 


        emp_id        

所以看起来像这样?

$(document).ready(function(){

$('#emp_id').change(function() {
      var url = "/user/populate_form?emp_id="+$(this).val();
      $.getJSON(url, function(data) {
        if(!(data.emp_first_name === undefined))
        $('#emp_first_name').val(data.emp_first_name);
        if(!(data.last_name === undefined))
        $('#emp_last_name').val(data.emp_last_name);
 $.ajax({
    type: 'POST',
    url:  "/user/populate_form?emp_id="+$(this).val();

     })
      .done(function (response) {
          if (response.success == 'success') {
              //alert('success');

          } else {
              //alert('fail');
          }
      }).error(function(data) {
        //show json error response from the server
        $("#show_error").html("<span class='text-danger' ><b>" + data.responseText + "</b></span>");
      });
    });
  }
);

});

1 个答案:

答案 0 :(得分:0)

使用。error方法

的这种形式的ajax请求
     .ajax({
        type: 'POST',
        url:  "/user/populate_form?emp_id="+$(this).val();

         })
          .done(function (response) {
              if (response.success == 'success') {               
                  //alert('success');    

              } else {
                  //alert('fail');
              }
          }).error(function(data) {
            //show json error response from the server
            $("#show_error").html("<span class='text-danger' ><b>" + data.responseText + "</b></span>");
          });
控制器中的

   format.js { render :json => @user.errors.full_messages.join(' '), :status => 400 }