значения, не передающиеся в базу данных

#javascript #ruby-on-rails

#javascript #ruby-on-rails

Вопрос:

Я включил динамический выпадающий список с текстовым полем, в котором, если я выберу no_of_years(periods) , он автоматически отобразит interest_rate , и возраст клиента рассчитывается в соответствии с date_of_birth . Если возраст клиента больше 58 или 58, он не принимает значение внутри.

Мой код просмотра:

 <script type="text/javascript"> 
  function deposit(){ 
    if(document.getElementById("no_of_year").value=="1") { 
      document.getElementById("interest_rate").value="9.5" 
    } 
    if(document.getElementById("no_of_year").value=="2") { 
      document.getElementById("interest_rate").value="10" 
    } 
    if(document.getElementById("no_of_year").value=="3") { 
      document.getElementById("interest_rate").value="10.5" 
    } 
    if(document.getElementById("no_of_year").value=="4") { 
      document.getElementById("interest_rate").value="11" 
    } 
    if(document.getElementById("no_of_year").value=="5") { 
      document.getElementById("interest_rate").value="11.5" 
    } 
  } 
</script> 

<h4><%= f.label :periods, class:'required' %></h4>
<select name="deposit[no_of_year]" id="no_of_year" onChange="deposit()"> 
  <option value="">select</option> 
  <option value="1">1</option> 
  <option value="2">2</option> 
  <option value="3">3</option> 
  <option value="4">4</option> 
  <option value="5">5</option> 
</select> 

<h4><%= f.label :interest_rate, class:'required' %>
<%= f.text_field :interest_rate, :id => "interest_rate", :value => "" %></h4>
  

Моя модель:

 before_save :calculate_age
def calculate_age
  self.age = ((DateTime.now - date_of_birth) / 365.25).to_i
end
  

Комментарии:

1. Есть ли у вас какое validation age -либо поле set on в вашей модели?

2. @Pavan: да, но я удалил проверку сейчас и снова столкнулся с той же проблемой

3. Вы перезапустили сервер после этого?

4. Можете ли вы опубликовать свой полный код модели (часть проверки)?

5. Вы уверены, что передаете date_of_birth значение своей модели?

Ответ №1:

Не уверен, что это то, что вы ищете. Могу ли я предложить некоторые jquery? Дайте мне знать, если это поможет.

 <script type="text/javascript"> 
function deposit(){
    var age = $("#no_of_year").val();
    var interestRate = 9   (0.5*age);
    $("#interest_rate").val(interestRate);
}
</script> 
  

Комментарии:

1. он работает, но показывает ту же ошибку. я не знаю точно, где ошибка?

2. если возраст 58 лет и старше, приведенный выше код не работает. я удалил проверку.

3. Я подозреваю, что это может быть как-то связано с отрицательными значениями. Можете ли вы показать результат DateTime.now — date_of_birth?

4. @user3743250: self.age = ((DateTime.now — date_of_birth) / 365.25).to_i это даст расчет возраста. значение date_of_birth задается вручную.

5. Итак, я знаю формулу, но было бы неплохо как-то подтвердить результаты. Вы уверены ((Datetime.now — date_of_birth)/365.25).to_i = желаемый результат? Просто проверь это, и мы пойдем дальше, хорошо?