2016-09-09 2 views
0

У меня есть текстовое поле, которое я предварительно заполнил некоторым текстом, но я обнаружил, что если проверка формы не удалась, добавленный дополнительный текст не сохраняетсяСохранять данные в текстовом поле после проверки формы не удалось - Active Admin

f.input :description, as: :text, input_html: { rows: 10, cols: 10, value: bike_description } 

def bike_description 
    "text here" 
end 

Так что, если я добавил в текстовое поле и чтения text here and some more text, при неудаче проверки формы поданной бы просто прочитать text here

Как я мог это вспомнить любой дополнительный текст, я добавил, или бы я нагрузить по умолчанию текст по-другому?

Я попытался поставить этот метод в моей модели

def bike_description 
    read_attribute(:description).presence || 'text here' 
end 

Но я получаю

undefined local variable or method `bike_description' for #<ActiveAdmin::Views::ActiveAdminForm:0x007fe9cb2d13a8> 

Благодаря

+0

У вас есть hardcorded 'value: bike_description', поэтому он всегда будет возвращать« текст здесь ». Каково ваше намерение использовать этот метод 'bike_description'? – Magnuss

+0

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

ответ

2

В настоящее время вы используете возвращаемое значение метода bike_description в качестве значения для поле формы. Независимо от того, как будет задано описание на модели, будет отображаться bike_description.

Предполагая, что база данных имеет description, чем вы можете добавить текст по умолчанию для чтения атрибута, добавив метод, как это к вашей модели:

# remove the overwritten value getter from the form 
f.input :description, as: :text, input_html: { rows: 10, cols: 10 } 

# add this to your model 
def description 
    read_attribute(:description).presence || 'text here' 
end 

Это возвращает текущее значение атрибута description или текст по умолчанию, если текст description пуст.

+0

спасибо за ответ, я пробовал это, но любой новый текст, который я добавляю, не сохраняется после отказа проверки. – Richlewis

+0

Да, когда вы добавляете это в модель, оно должно быть доступно везде в приложении. В помощнике представления вам потребуется что-то другое, чтобы вызвать этот метод 'read_attribute' на фактическом ресурсе, который в настоящее время отображается. – spickermann

+0

ok, поэтому я добавил метод к моей модели, но получаю 'undefined local variable или method 'bike_description' для # ' ' – Richlewis

Смежные вопросы