我正在使用 ActiveScaffold 创建管理 UI。
- 我有两个模型:帖子和评论。
- 一个帖子有很多评论,一个评论属于一个帖子。
- 有一个 validates_presences_of :text 验证 Comment 模型。
问题是当我从管理 UI 创建一个新帖子而不在子表单中创建一个新评论时,ActiveScaffold 抱怨验证。如果我还创建了与之关联的评论,我可以创建帖子,这不是我想要的。
我可以从脚本/控制台手动创建一个新帖子。
是什么赋予了?
我正在使用 ActiveScaffold 创建管理 UI。
问题是当我从管理 UI 创建一个新帖子而不在子表单中创建一个新评论时,ActiveScaffold 抱怨验证。如果我还创建了与之关联的评论,我可以创建帖子,这不是我想要的。
我可以从脚本/控制台手动创建一个新帖子。
是什么赋予了?
也许您希望在每个帖子中创建至少一个评论的 ActiveScaffold 事物。我在 has-one 上遇到过这个问题……看起来 ActiveScaffold 在 has-many 情况下会足够聪明,但谁知道呢。
以下是我为 has-one 解决它的方法(无论如何都是我想要的 UX):
# if post has-one attachment
active_scaffold :post do |config|
config.columns[:attachment].form_ui = :select
end
当然 :select 对评论没有意义,但是您可以查看类似的 UI 更改,告诉它不要尝试将表单内联(如果确实发生了这种情况)
您希望在创建/编辑帖子时默认防止(尝试)创建空白评论记录。幸运的是,AS 有一个 API::Column.show_blank_records 选项来控制这种行为:
active_scaffold :post do |config|
config.columns[:comments].show_blank_records = false
end
这将要求用户在创建/编辑帖子时单击“添加新”按钮以创建新的评论记录,因此验证检查不会在空白记录上运行。
见https://github.com/activescaffold/active_scaffold/wiki/API:-Column