【发布时间】:2023-03-11 23:57:02
【问题描述】:
我的数据库中有一个名为部门的文本字段,我想在其中存储部门列表。用户将输入以逗号分隔的部门名称。例如:
department1, deaprtment2, department3
我希望在用户提交表单时将此值存储为数组。另外,我希望部门列表显示为下拉列表。最后,在更新表格时,部门字段也应该像以前一样可编辑(通过输入逗号分隔的文本进行更新)。
编辑: 我已将此添加到我的模型中:
class Org < ActiveRecord::Base
serialize :department, Array
attr_accessible :name, :department
before_validation :update_department
validates :name, presence: true
def update_department
if department_changed? and department.is_a?(String)
self.department = self.department.split(',').collect(&:strip)
end
end
end
和视图:
<%= f.text_area :department, :cols => "10", :rows => "10" %>
现在每当我尝试注册时,部门字段已经存在 [],而当我尝试更新部门时,部门字段已经是 ["[department1", "department2]"]。
我希望在注册时删除 [],并且在更新时只显示部门 1、部门 2。
请帮忙。
【问题讨论】:
-
你应该
serialize :departments, Array(stackoverflow.com/questions/4711334/string-to-serialized-array) -
@MrYoshiji:我已经编辑了我的问题。你能提供一些进一步的解决方案吗?
标签: ruby-on-rails database arrays forms