表单验证失败后在文本字段中保留数据 - 活动管理员

时间:2016-09-09 07:34:22

标签: ruby ruby-on-rails-4 activeadmin

我有一个文本字段,我预先填充了一些文本,但我发现如果表单验证失败,那么我添加的任何额外文本都不会保留

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>

由于

1 个答案:

答案 0 :(得分: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属性的当前值或默认文本。