Rails在before_save中将字符串转换为数组,但显示为字符串

时间:2019-07-01 13:55:02

标签: ruby-on-rails

所以我正在处理某种形式的电子邮件。现在,它只接受一封电子邮件,但我们正在考虑发送多封电子邮件,这意味着允许表单接受多个电子邮件。

我的想法是做一个before_save来将输入的电子邮件转换成数组并处理以数组形式发送电子邮件。问题在于表单仍显示一个数组。所以我的模型中有以下内容:

before_save do
 self.email = self.email.split(',').map(&:strip)
end

数据将转换为精细数组。但是,表单将数据显示为数组,除非将其更改为字符串,否则无法更新。

表单如下:

=tb_form_for [:admin, @contact], remote: true, data: { errors: :inline, success: thanks_path } do |f|
 = f.tb_text_field :email.to_s

但是实际上并没有将数组转换为字符串。

还有另一种方法可以将数据接受为字符串,转换为数组并可以显示为字符串吗?

1 个答案:

答案 0 :(得分:0)

您可以使用email.join(',')将数组转换为字符串,而不是调用.to_s,它将转换为类似"email a,email b,email c"的字符串