我在"帖子中有10个下拉字段"我希望由admin用户控制的表单。
目前,我有另一个名为" post fields"
的模型class PostField
include Mongoid::Document
field :family, type: String
field :project, type: String
field :event, type: String
field :testmode, type: String
field :location, type: String
end
然后我使用这些文档填充新帖子的每个下拉列表。
我有2个dellimas:
1)如果管理员为一个下拉列表添加PostField文档,则会创建一个完整的文档。不是最有效的,但我可以解决这个问题。 2)如果管理员更改了字段的名称,则所有关联的帖子都不匹配。
这实际上是一种标记模型,但实施起来很差,我不知道该怎么做。
即,我希望有一个受控制的地点列表:["楼上","楼下","浴室"]所以用户不能只需使用文字输入并说出"洗手间"代替。但如果管理员想要改变"浴室"到"洗手间",我希望相应的帖子更新。
希望这不是太复杂。
答案 0 :(得分:3)
所以你希望每个PostField都属于某种类型或位置?所以你想限制进入的位置:位置?
你需要做的是创建另一个名为locations的模型和表,它将包含一个位置列表,如Upstairs,Downstairs,Bathroom等。它有id和id,以及一个名字。在PostField中,您将使用has_one :location
加入位置,数据库表将具有location_id
。然后管理员可以将Location.name更改为他们想要的任何内容,而所有PostField都将显示更新的标签。在视图中,使用postField.location.name
显示该字段的标签。
答案 1 :(得分:0)
不确定要理解你想做什么。
使用此架构,您应该能够创建一个"帖子"使用静态字段和动态字段。
<强> PostField 强>
<强> PostFieldValue 强>
在模型中
您应该创建一个方法来根据帖子的字段获取值。
<强>改进强>