formtastic 为输入 ID 加上模型名称前缀——我们可以覆盖它吗?
formtastic prefixes input ids with the model name - can we override this?
我有 js 挂钩到 formtastic 生成的输入 ID。输入 ID 的格式为 MODELNAME_INPUTNAME。因为我们的页面分布在几个页面中,并且通常被 A/B 测试,所以模型名称不断变化,比如从 "candidate_application_page3b" 到 "candidate_application_page1"。这意味着对我们的 JS 代码进行大量改动,或者对翻译 ID 进行抽象层处理。这两者都使 JS 更难维护。
我们想要解决此问题的方法是更改 formtastic 计算其 ID 名称的方式。
formtastic 中有这方面的内容吗?如果我们可以覆盖它的偏好,将模型名称包含在 semantic_form_for
级别的输入 ID 中,那将是最简单的事情。
我们找到了 :namespace
参数,但它只是在 id 的开头添加了额外的单词,它不允许我们更改 modelname 位。
你在上面的评论中很接近,可以使用 :as
选项来做到这一点。
<%= semantic_form_for @post, as: "article" do |f| %>
<%= form.input :title %> <!-- #article_title -->
<% end %>
我有 js 挂钩到 formtastic 生成的输入 ID。输入 ID 的格式为 MODELNAME_INPUTNAME。因为我们的页面分布在几个页面中,并且通常被 A/B 测试,所以模型名称不断变化,比如从 "candidate_application_page3b" 到 "candidate_application_page1"。这意味着对我们的 JS 代码进行大量改动,或者对翻译 ID 进行抽象层处理。这两者都使 JS 更难维护。
我们想要解决此问题的方法是更改 formtastic 计算其 ID 名称的方式。
formtastic 中有这方面的内容吗?如果我们可以覆盖它的偏好,将模型名称包含在 semantic_form_for
级别的输入 ID 中,那将是最简单的事情。
我们找到了 :namespace
参数,但它只是在 id 的开头添加了额外的单词,它不允许我们更改 modelname 位。
你在上面的评论中很接近,可以使用 :as
选项来做到这一点。
<%= semantic_form_for @post, as: "article" do |f| %>
<%= form.input :title %> <!-- #article_title -->
<% end %>