轨道上红宝石的多种条件

时间:2014-02-26 09:41:25

标签: ruby-on-rails

我想在rails应用程序中应用多个条件,如下所示:

  if !params[:parameters].blank? && params[:parameters] == "Designation" 
       puts "Hassan"
       @dynamicDesignation = ""
       @dynamicCompany = ""
       @dynamicFrom = ""
       @dynamicTo = ""
       @Profession = Profession.new( :UserID => current_user.id, :Designation => @dynamicDesignation, :Company => @dynamicCompany, :Job_From => @dynamicFrom, :Job_To => @dynamicTo)
       #@Profession = @Profession.save
    else
      puts "Ali"
       @dynamicDesignation = params[:parameters]
       @dynamicCompany = params[:parametersCompany]
       @dynamicFrom = params[:ParametersFromProf]
       @dynamicTo = params[:ParametersToProf]
       @Profession = Profession.new( :UserID => current_user.id, :Designation => @dynamicDesignation, :Company => @dynamicCompany, :Job_From => @dynamicFrom, :Job_To => @dynamicTo)
       #@Profession = @Profession.save
    end
      # redirect_to '/educations'
      render 'index'
  end

参数是动态控制,即:

 var input = "<input name='parameters' id='field' type='text' value='Designation' style='text-align:center;' onblur='WaterMarkDesignation(this, event);' onfocus='WaterMarkDesignation(this, event);'/>";
                var input1 = "<input name='parametersCompany' id='field' type='text' value='Company' style='text-align:center;' onblur='WaterMarkCompany(this, event);' onfocus='WaterMarkCompany(this, event);'/>"

但它没有进入if条件,它只运行其他条件,为什么。请建议我。感谢

1 个答案:

答案 0 :(得分:1)

首先,如果您尝试确保没有将空白项目保存到数据库中,则应该使用nilify_blanks

我会这样做:

  #app/models/profession.rb
  Class Profession < ActiveRecord::Base
      nilify_blanks
  end

  #app/controllers/professions_controller.rb
  def create
      @Profession = Profession.new(profession_params)
      @Profession.save
      render 'index'
  end

 private

 def profession_params
     params.require(:profession).permit(:designation, :job_from, :job_to, :company).merge(userID: current_user.id)
 end

<强>占位符

其次,您试图阻止发送占位符(Designation),而不是使用value,为什么不使用placeholder

这将显示您想要的文字,但除非已由用户填充,否则将视为空白:

<input name='parameters' id='field' type='text' placeholder='Designation' style='text-align:center;' onblur='WaterMarkDesignation(this, event);' onfocus='WaterMarkDesignation(this, event);'/>