我想在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条件,它只运行其他条件,为什么。请建议我。感谢
答案 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);'/>