如何在我们选择人名时收到电子邮件

时间:2016-04-27 12:18:52

标签: ruby-on-rails

当我选择他的名字时,如果他的电子邮件ID存在于数据库中,我需要一个员工电子邮件ID。任何人都可以建议我怎么做,因为我有1400名员工和他们的邮件ID,我在下拉列表中得到他们的名字,但是当我选择他们的名字时,我需要他们的邮件ID在特定领域显示.... ..

$("#user_employee_id").change(function(){
         $.ajax({
              type: "GET",
              url: "/User/emailcheck",
              data: { email: user.email }
                });

        });

user_controller.rb
def emailcheck
    @user = User.search(params[:email])
  end

user.rb
def self.search(email)
        if email
            where('email = ?',email).first
        end
  end

当我点击员工姓名时,任何人都可以告诉我如何获取电子邮件ID吗?我需要在电子邮件选项卡中默认获得该员工的电子邮件ID。

2 个答案:

答案 0 :(得分:1)

试试这个:

$("#user_employee_id").change(function(){
   var id = $(this).val(); 
     $.ajax({
          type: "GET",
          url: "/User/emailcheck",
          data: { id : id}
          success : function( data ) {
           $("#user_email").val(data);
          },
          error   : function(err) {

          }
       });

    });

user_controller.rb

 def emailcheck
   @user = User.find_by_id(params[:id])
   respond_to do |format|
    if @user.email.present?
      format.json { render json: @user.email , status: :ok }
    else
     format.json { render json: "No mail id", status: :unprocessable_entity }
    end
   end
 end

答案 1 :(得分:1)

你可以这样做

改变你的js代码:

$("#user_employee_id").change(function(){
  var user_id = $(this).val(); #considering that your are setting id as a value of select field
  $.ajax({
    type: "GET",
    url: "/user/emailcheck",
    data: { id: user_id }
 }).success(function(res){
   $("#your_text_field_id").val(res.text);
 });

});

并在您的user_controller.rb

 def emailcheck
   user = User.find_by(id: params[:id])
   if user.present? 
      render text: user.email 
   end  
 end