0

我使用了多选选择标签。

在我使用的创建方法中,

category= @admin.category.reject! { |c| c.empty? }.to_s

将我的选择标记(选定)值作为数组保存到数据库中。

但是在更新方法中,同样的事情是无法实现的。我得到的原始格式是,

--- - '' - Adventure Tours - Cruises - Exploration 

我想把它改成一个数组

["Adventure Tours","Cruises","Exploration"]
4

1 回答 1

0

您可以使用 ActiveRecord 提供的“序列化”方法将值作为数组存储到数据库中。

您存储这些值数组的列的类型应该是文本

例如:(如果您想在类别表中保存类别代码)

# In the migration file
add_column :categories, :codes, :text 

# In the model
class Category < ActiveRecord::Base
  serialize :codes
end

它将被保存在数据库中

---
- abc 
- xyz
- pqr

在从数据库中获取它之后,比如

Category.find(some_id).codes

您将获得该给定类别记录的代码数组。

["abc", "xyz", "pqr"]

您可以参考此文档http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-serialize(搜索标题:在文本列中保存数组、哈希和其他不可映射的对象)

于 2013-03-04T13:25:15.277 回答