Переопределить значение по умолчанию в форме рельсов - PullRequest
0 голосов
/ 21 мая 2018

У меня есть форма с разными входами, для каждого нужно значение по умолчанию.

Например,

<%= f.label :salary, "Salary" %>
<%= f.text_field :salary, value: "Default salary" %>

Представьте себе, я заполняю зарплату, 80K Iсохранить мою формуШоу работает хорошо, я вижу 80K , как и ожидалось ...

Проблема в том, что когда я редактирую другие поля в моей форме ... У меня Зарплата по умолчанию обратно, и я хочу оставить 80K

Что мне делать, пожалуйста?

Ответы [ 3 ]

0 голосов
/ 21 мая 2018

Вы можете просто заполнить фактическим значением, если оно существует, или использовать значение по умолчанию в противном случае.

<%= f.label :salary, "Salary" %>
<%= f.text_field :salary, value: (f.object.salary || "Default salary") %>
0 голосов
/ 22 мая 2018

Вы можете установить значения по умолчанию в новом действии, из которого вы делаете объект для этого.

def new
  @obj = SomeClass.new
  @obj.salary = "Default salary"
  ...
end

И еще одно решение заключается в том, что вы определяете значение по умолчанию в файле миграции для этого режима следующим образом.

change_column :some_class, :salary, :number, default: "Default salary"
0 голосов
/ 21 мая 2018

Вы можете проверить, является ли объект новой записью.Если это так, вы заполняете значением по умолчанию, в противном случае вы заполняете значением объекта.Примерно так:

<%= f.label :salary, "Salary" %>
<%= f.text_field :salary, value: (f.object.new_record? ? 
"Default salary" : f.object.salary) %>

Надеюсь, это поможет, удачи

...